Wie kann ich den pass mehrere radio-button-Werte in MYSQL Datenbank über PHP als alle einzelnen Werte, aber halten Sie Sie getrennt in Gruppen?
Habe ich einen langen Fragebogen (46 Fragen) mit jeweils (3) mögliche Antworten, ja, manchmal, und Nein, (3 radiobuttons), die jeweils einen entsprechenden Wert, 10, 5 und -10 jeweils.
Hatte ich die Fragen aufgeteilt unter den 4 überschriften mit mehreren Fragen, die unter jeder überschrift.
Ich war in der Lage, alle Daten in mySQL Datenbank, indem Sie jedem ein anderes name-Attribut, welches mit seinem Feld in der Datenbank.
Das problem, das ich habe ist, dass ich nicht mehr verwenden können der radio-buttons als set, Sie sind alle wählbar, Sieg über den Zweck der mit Ihnen, im wesentlichen so dass Sie check-Boxen....
Ich muss Sie jeden radio-button einen eigenen Wert in meiner Datenbank und ich brauche Sie gruppiert werden, die in Ihrer 3 Auswahlmöglichkeiten für jede Frage...
Werde ich ein Beispiel von meinem html-Formular und php-Skript senden....
Vielen Dank im Voraus für jeden Rat...
html-code einer Frage
<div class="questionBox">
<p>1.Have I clearly defined my companies target market?</p>
<input type="radio" name="ca1y" value="10"/>
<label for="ca1">YES</label>
<input type="radio" name="ca1s" value="5"/>
<label for="ca1">SOMEWHAT</label>
<input type="radio" name="ca1n" value="-10"/>
<label for="ca1">NO</label>
</div>
/* php post update */
$radioPost="INSERT INTO questions
( ca1y,
ca1s,
ca1n,...)
VALUES
( '$_POST[ca1y]',
'$_POST[ca1s]',
'$_POST[ca1n]',...)
Ich versuchte jeden radio-button ein ID-Attribut, und verwenden, um die Datenbank zu aktualisieren, aber ich kann nicht scheinen, um die Arbeit....
jegliche Hilfe würde sehr geschätzt werden
cheers.
InformationsquelleAutor user482024 | 2011-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, ob ich immer bin jist, was Sie zu tun versuchen, aber es scheint, wie Sie benötigen, um eine Personen Antworten auf verschiedene Fragen, die DB aber, dass jede Frage kann nur EINE von sagen wir mal drei mögliche Antworten. Nun, in diesem Fall womöglich denken Sie an eine überarbeitung Ihrer DB so Aussehen:
Speichern Sie die Benutzer-details in der Tabelle users, die Frage, die details in den Fragen, die Tabelle und der unterschiedlichen Antworten, die in der Antworten-Tabelle. Ein Benutzer wird in der Lage sein, Antworten auf multiple Fragen aber nur beantworten Sie eine Frage auf einmal. Anschließend speichern Sie die Antwort in EINEM Feld namens answer_value zum Beispiel. Es gibt keine Notwendigkeit zum speichern der Antwort in mehreren Feldern, da Sie das speichern der Werte der radio-button wählten Sie, ich.e Sie speichern entweder ein 10, 5 oder -10 je nachdem, welche option ausgewählt wurde.
Es ist auch wichtig, dass in Ihren HTML-nennen Sie alle radio-buttons für eine bestimmte Frage die gleiche. Dies stellt sicher, dass die radio-Optionen handeln wie radio-buttons und nicht wie Checkboxen. Ihre HTML würde wahrscheinlich wie folgt Aussehen:
Beachten Sie, dass Frage 1 hat 3 radio-Optionen, die alle mit der Bezeichnung "q1" und Frage 2 hat 3 radio-Optionen, die alle den Namen "f2". Folgen der gleichen Konvention für alle Ihre Fragen. PHP wird dann ziemlich einfach und wird wahrscheinlich so Aussehen:
Wenn Sie nicht sicher sind, was die radio-button-Namen sind, können Sie mit einer foreach-Schleife wie folgt:
Auch darauf hingewiesen werden, dass, selbst wenn Sie nur mit radio-Optionen, sollten Sie trotzdem reinigen Sie die Eingänge, um zu verhindern, dass Angriffe wie SQL-Injection, etc. Ich schlage vor, Sie finden ein paar mehr Infos über das sichern Sie Ihren code vor dem Angriff.
BTW, wenn man die Fragen in einer Tabelle von seinen eigenen, können Sie dynamisch erstellen Sie Ihre Fragebogen aus dieser Tabelle, die dann ermöglicht Ihnen das hinzufügen oder Fragen löschen wird, so dass Ihre gesamte Anwendung wesentlich flexibler. Und speichern Sie Ihre Antworten in einem Feld statt drei, entfernen Sie alle NULL-Werte aus Ihrer Tabelle, die vereinfacht Ihre Abfragen, wenn Sie Berechnungen durchführen. Ich weiß, MySQL normalerweise legt eine null als default-integer-Wert, aber es ist immer noch besser, speichern Sie es in einem Feld. Wenn Sie wissen möchten, welche option ein Benutzer auswählt, um eine bestimmte Frage haben, überprüfen Sie den gespeicherten Wert in das Feld.
InformationsquelleAutor Ashraf Abrahams
Nicht sehr gut, Lösung: schreiben js zu deaktivieren entsprechenden radio-buttons.
Auf ernstere note, die ich nicht verstehe, die müssen alle Funkgeräte mit unterschiedlichen Namen. Warum ist eine solche Lösung nicht anwendbar: - name-radios in eine Frage mit demselben Namen, können sagen, question1, dann nach der post schauen Sie einfach Wert und man kann einfach aktualisieren db. Ich nehme an, Sie möchten sammeln, wie viele Male jedes radio ausgewählt wurde. Also, wenn Sie wissen, dass Frage 1 hatte die Wahl, die 1 Sie als auch wissen, dass Frage 1 nicht haben, zu entscheiden, 2 und 3. Es sei denn, Sie sammeln die Daten auf andere Weise oder für andere Zwecke, aber ich glaube, dass es ein bisschen mehr input von dir über den Zweck der. Obwohl ich immer noch denke, Sie können dies tun, wie ich schon sagte, dies würde keine komplexen Verarbeitung, id sagen, rudimentäre Programmier-Kenntnisse sollten ausreichen.
zum Beispiel habe ich meine php Suche nach der radio-name= Attribut-und ausrichten, dass mit meinem Datenbank-Felder... kann ich das irgendwie machen Sie es richten mit der id= field of meine Formen statt der Namen=? das scheint wie eine einfache Lösung, aber es funktioniert nicht
Nicht wirklich. Ich würde wahrscheinlich versuchen, einige mapping in Frage zu stellen oder Antwort zu db-Spalte. Oder, wenn Sie wollen, um eine Karte zu id haben, können Sie die Karte von "Frage-radios name(gleich für alle 3 radios in der Frage)"+" - Wert(zur Identifizierung Hexe aus 3 radios ausgewählt wurde)" => "radio_id", dann über diese map und foreach-Schleife Sie leicht zu bekommen alle ausgewählten Funkgeräte-ids, und dann alle ids, die nicht vorhanden sind, sind die nicht ausgewählt wurden.
InformationsquelleAutor morphles