Seite 1 von 1

Leere Radiobuttons bzw. immer der 5. Button ist checked

Verfasst: 19.05.2004 17:08
von gabriela
Hallo,

vielleicht kann mir jemand helfen? Ich komme trotz Suche und Ausprobieren nicht weiter.
Ich habe die Registrierung um einen Fragebogen ergänzt. Wenn ich das Formular abschicke und die Emailadresse vergessen wurde, wird das Formular neu geladen. Problem: Die bereits ausgewählten Radiobuttons sind dann leer.
Vermute dass es an der usercp_register.php liegen muss und hab diese für die ersten 2 items wie folgt geändert:

Code: Alles auswählen

'ITEM1_1' => ( $item1 ) ? 'checked="checked"' : '',
'ITEM1_2' => ( $item1 ) ? 'checked="checked"' : '',
'ITEM1_3' => ( $item1 ) ? 'checked="checked"' : '',
'ITEM1_4' => ( $item1 ) ? 'checked="checked"' : '',
'ITEM1_5' => ( $item1 ) ? 'checked="checked"' : '',

und

$item1 = ( isset($HTTP_POST_VARS['item1']) ) ? ( ($HTTP_POST_VARS['item1']) ? TRUE : 0 ) : 0;
$item2 = ( isset($HTTP_POST_VARS['item2']) ) ? ( ($HTTP_POST_VARS['item2']) ? TRUE : 0 ) : 0;
$item3 = ( isset($HTTP_POST_VARS['item3']) ) ? ( ($HTTP_POST_VARS['item3']) ? TRUE : 0 ) : 0;
http://web154.ibiza049.server4free.de/p ... gister.txt

(müssen hier nicht jeweils 5 Optionen aufgelistet werden, entsprechend meiner 5 Radiobuttons? Wie übergebe ich die gewählte Option?)

Bei dieser Einstellung wird mein Formular mit ausgewählten Radiobuttons neu geladen. Problem: Es wird immer der letzte Button ausgewählt - egal welcher Button eigentlich gewählt worden ist.
Bei der ersten und zweiten Frage im Fragebogen wird dies deutlich:
http://web154.ibiza049.server4free.de/phpbb2/index.php (unter Anmelden)

Hat jemand eine Idee wie man das beheben könnte? :-?

Meine profile_add_body.tpl für die erste Frage sieht so aus:

Code: Alles auswählen

<tr><td width="39%"><font size="-1"><b>Frage1</b></font></td></tr>

	  <td class="row1"><span class="gen">{L_item1} </span></td>
	  <td class="row2">
		<input type="radio" name="item1" value="1" {ITEM1_1} />
		<span class="gen">{L_option1}</span></td>
		<td class="row2"><input type="radio" name="item1" value="2" {ITEM1_2} />
		<span class="gen">{L_option2}</span></td>
		<td class="row2"><input type="radio" name="item1" value="3" {ITEM1_3} />
		<span class="gen">{L_option3}</span></td>
		<td class="row2"><input type="radio" name="item1" value="4" {ITEM1_4} />
		<span class="gen">{L_option4}</span></td>
		<td class="row2"><input type="radio" name="item1" value="5" {ITEM1_5}/>
		<span class="gen">{L_option5}</span></td>
</tr>
http://web154.ibiza049.server4free.de/p ... d_body.tpl

Gruß
Gabriela

P.S. Gibt es sonst einen Mod für den Einbau von Radiobuttons? addnewfield kenne ich aber da gibt es nur Dropdownfelder glaube ich.

Verfasst: 20.05.2004 00:21
von D@ve
Würde Dir empfehlen diesen Mod zu benutzen. Da ist ausführlich beschrieben, wie man neue Felder im User-Profil hinzufügt...

Gruß, Dave

Wie macht man 5 Radiobuttons in PHP???!

Verfasst: 20.05.2004 14:42
von gabriela
Hallo, danke für den Tip!
Hab meine usercp_register mit addoption_1 verglichen, scheint übereinzustimmen.
Aber was macht man, wenn man 5 Radiobuttons hat?!

Dann müsste ich doch in der usercp_register was ändern, da hier nur zwei Optionen eingestellt sind, so wie ich den code verstehe:

Code: Alles auswählen

$item1 = ( isset($HTTP_POST_VARS['item1']) ) ? ( ($HTTP_POST_VARS['item1']) ? TRUE : 0 ) : 0; 
$item2 = ( isset($HTTP_POST_VARS['item2']) ) ? ( ($HTTP_POST_VARS['item2']) ? TRUE : 0 ) : 0; 
$item3 = ( isset($HTTP_POST_VARS['item3']) ) ? ( ($HTTP_POST_VARS['item3']) ? TRUE : 0 ) : 0;
Bloß wie muss dann der code hier heißen?

Gruß,
Gabriela

Verfasst: 21.05.2004 01:06
von D@ve
Du musst den hack dann nicht als Option (mit true/false) sondern die Variante für ein normales Textfeld benutzen.

Gruß, Dave

Wo werden die ausgewählten Radiobuttons übergeben?

Verfasst: 22.05.2004 12:43
von gabriela
Hallo,
und danke an Dave. Ich habe es mal mit dem Hack für ein normales Textfeld versucht. Trotzdem blieben die Radiobuttons nach einem Reload leer, obwohl sie vorher ausgewählt waren. Jetzt habe ich mal versucht, den Genderhack einzubauen (umbenannt in "Hobby"). Aber auch hier werden die bereits ausgewählten Radiobuttons nicht neu mitgeladen.
Wenn ich wüßte, an welcher Stelle dies festgelegt wird, wäre ich einen großen Schritt weiter... :-? Muss man irgendetwas an der profile.php verändern?
Vielleicht hat ja jemand Lust, mal in meinen Code zu schauen, ob der wenigstens so richtig ist? Das wäre eine große Hilfe!
Hier ein paar Auszüge aus den - wie ich glaube - entscheidenden Dateien:

profile_add_body.tpl:

Code: Alles auswählen

<tr>
      <td class="row1"><span class="gen">{L_HOBBY}:</span></td>
      <td class="row2">
      <input type="radio" name="hobby" value="1" {HOBBY_OPTION1}/>
      <span class="gen">{L_OPTION1}</span>
      </td>
      <td>
      <input type="radio" name="hobby" value="2" {HOBBY_OPTION2}/>
      <span class="gen">{L_OPTION2}</span>
      </td>
</tr>
usercp_register.php:

Code: Alles auswählen

validate_optional_fields($icq, ... , $geschlecht, $hobby);   
...
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_viewemail = $viewemail, user_hobby = $hobby..."
...
		'HOBBY_OPTION1' => $hobby_option1,
		'HOBBY_OPTION2' => $hobby_option2,
		'L_HOBBY' => $lang['Hobby'],
		'L_OPTION1' => $lang['Option1'],
		'L_OPTION2' => $lang['Option2'],
lang_main.php:

Code: Alles auswählen

$lang['Option1'] = "gar nicht";
$lang['Option2'] = "etwas";
$lang['Hobby'] = 'Mein Hobby';
In der Hoffnung auf weitere Tips,
Gabriela