Combo-box in PHP
droom
- php
0 HyperDrummer0 Dr. Web0 nurso
Ich möchte gern so ein <select> Feld machen, wie auf der Grüsskarte Senden von yahoo, so dass man wählen kann, wieviele Absender-Input-Felder generiert werden soll.
Dann nach einer Auswahl, wird die Seite neu aufgerufen mit der eben ausgewählte anzahl an Input Felder generiert.
Wie mache ich das in PHP? Hab so versucht aber die seite wird nicht neu aufgreufen mit dem ausgewählten Nummer. Es passiert einfach nichts.
---senden.php-----
<form name ="test" action="" method="post">
<select name="recip" onChange="document.test.action='senden.php'; document.test.submit();">
<?php
for ($i=1;$i<11;$i++)
{
echo "<OPTION VALUE='".$i."'>".$i."</OPTION>";
}
echo "</SELECT>";
for ($i=0;$i<$recip;$i++)
{
echo "<INPUT TYPE='text' NAME='textfeld".$i."'></INPUT>";
}
...
<input type="submit" value="Senden">
Hi,
du mußt eine JS-Funktion schreiben, die ungefähr so aussieht:
function submit() {
var recip;
recip = document.test.recip.value;
url = "senden.php?recip=";
url = url + recip;
window.location.href = url;
}
Diese Funktion rufst du beim OnChange-Event der Select-Box auf. Dann sollte es eigentlich funktionieren.
Gruß
<form name ="test" action="" method="post">
<select name="recip" onChange="document.test.action='senden.php'; document.test.submit();">
<?php
for ($i=1;$i<11;$i++)
{
echo "<OPTION VALUE='".$i."'>".$i."</OPTION>";
}echo "</SELECT>";
for ($i=0;$i<$recip;$i++)
{
echo "<INPUT TYPE='text' NAME='textfeld".$i."'></INPUT>";
}
...
<input type="submit" value="Senden">
1. Du hast ja bei "action" auch nicht den Empfänger des Formulars angegeben
2. Submitbefehl: <select name="recip" onChange="document.test.submit()"> Greift auf die URL in "action"" zu
3. Formular immer abschliessen </form>!
4. Ich ärgere mich immer über Seiten die nur mit JS bedient werden können und das scheint eine zu werden
---senden.php-----
<form name ="test" action="" method="post">
<select name="recip" onChange="document.test.action='senden.php'; document.test.submit();">
<?php
for ($i=1;$i<11;$i++)
{
echo "<OPTION VALUE='".$i."'>".$i."</OPTION>";
}echo "</SELECT>";
for ($i=0;$i<$recip;$i++)
das gute alte register globals prob.
$_POST[recip] heist die var auf die du zugreifen möchtest.
auch soll dieser teil ja erst ausgeführt werden nachdem der submit button gedrückt wurde.
was jetzt passiert .
1.deine form wird erstellt.
2.deine select feld erhält 11 auswahlmöglichkeiten.
3.Du erstellst inputfelder von 0 - 0 also 0 inputfelder.
meines erachtens nach macht dein script doch das was du geschrieben hast.
ein tip für die zukunft:
lasse dir die variablenfüllung anzeigen.
du hättest gemerkt das $recip leer ist.
nurso