PHP - Wie Generiere ich neue text-Felder, die basierend auf einem select-option Feld Wert?
Wie Mach ich ein drop-down-box, wenn der Wert ausgewählt ist, wird es schaffen, dass noch viele weitere text-Felder auf dem gleichen Formular.
Ich habe eine select-option Feld, das Sie fragt "wie viele Kategorien gibt, die Sie brauchen? 1-6"
Wenn der Benutzer wählt 3 es wird auf die gleiche form schaffen 3 neue text-Felder, die den Benutzer auffordert, geben Sie einen Namen für jede Kategorie. Wenn es 6 Kategorien, dann wird es generieren 6 Textfelder.
Sobald der submit-button geklickt wird die Daten geht auf die Seite einfügen und die Datenbank wird aktualisiert. Mein problem ist das erzeugen des neuen text-Felder basiert auf dem wählen Sie die option Wert.
<select name="num_cat" onchange="document.textbox.value=this.value">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="text" name="textbox" id="textbox">
<?php
If $_POST[num_cat] == 1{
echo ;
}else
?>
und das ist, wo ich verloren gehen.
In der Datenbank habe ich die Felder für Category1, Category2, etc... und diese Felder werden ausgefüllt, indem die Werte der Textfelder erzeugt.
Wenn jemand irgendwelche Vorschläge oder Beispiele wäre ich sehr dankbar.
Danke.
~G~
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sein scheint, wie Sie wirklich brauchen nur eine Schleife verwenden, um die Ausgabe der Anzahl der Felder, die Sie benötigen.
Beispiel:
Würden Sie haben eine form, die bitten der Nutzer die Menge der Felder, die Sie benötigen,
form.php
category_form.php
JEDOCH, dies wäre viel einfacher, wenn Sie mit JQuery dynamisch zu aktualisieren, die Menge der Felder, wie dies entfernen würde, die Notwendigkeit, die Seite zu aktualisieren. Sie können dies tun, indem mithilfe des folgenden Codes.
index.html
Diese aktualisieren dann on-the-fly anstatt neu zu laden, PHP Seite alle Zeit zum erstellen der Felder.
Natürlich müssen Sie fügen Sie CSS-code, aber ich nicht zu tun für Sie ;).
P. S. Anstelle der Verwendung .keyup, die Sie möglicherweise verwenden möchten .ändern Sie stattdessen...
isset($_POST['column-1'])
auch funktionieren würde.Blick in die Verwendung von jQuery, code zu injizieren, erzeugt in einer Schleife wieder zurück in Ihre form.
Probieren Sie etwas wie dieses:
Dadurch wird die select-box-Wert " und " echo aus einem Textfeld für die x-Anzahl von Kategorien. Sie können wickeln Sie diesen in eine form und dann werden Sie in der Lage zu senden und schreiben Sie die Daten in Ihre Datenbank.
Klingt wie Sie brauchen, zu denken, über Ihr schema, um sicherzustellen, es ist skalierbar für Ihre Zwecke.
Einen Weg, es zu tun, ist dieser Weg (der Art wie, wie Sie es jetzt haben):
Tabelle: Nachrichten
id Nachrichtentext category1 category2 category3 Kategorie 4
Dies ist bequemer, wenn Sie gigantische Datenmengen, wie es eliminiert multiple-joins. Das problem ist, was passiert, wenn Sie möchten, um eine fünfte Kategorie?
Eine andere Möglichkeit wäre, auf diese Weise:
Tabelle: Nachrichten
id und den text der Nachricht
Tabelle: Kategorien
id Kategoriename
Tabelle: messages_categories
id-messageID categoryID
diese Weise können Sie so viele Kategorien wie Sie wollen, und Sie nicht haben, um eine Kategorie angeben, die für jede Nachricht.
Also, wenn Sie bleiben lieber bei Ihren bestehenden option, die Sie könnten versuchen, den Aufruf einer javascript-Funktion, um zusätzliche Felder hinzuzufügen.