2012-04-08 11 views
0

schreibt Ich habe eine jfiddle here. Wenn der Benutzer auf die Schaltfläche "Frage hinzufügen" klickt, fügt er in jeder Zeile ein Optionsfeld hinzu. Aber was ich tun möchte, ist $ _POST, um ausgewählte Radio-Buttons in jeder Zeile in die insertQuestions.php Seite (Aktion, die das Formular verwendet) zu posten.Wie man überprüfte Radiobuttons

Also was ich wissen möchte ist, wie schreibe ich die $ _POST-Anweisung, um in der Lage zu überprüfen, Radio-Buttons?

UPDATE:

Ist diesen Code unten korrekt in Bezug auf die ReplylD für das ausgewählte Radio Suche nach z Fall Anweisung dann einer Abfrage mit:

$i = 0; 
$c = count($_POST['reply']); 

$insertquestion = array(); 

for($i = 0; $i < $c; $i++){ 

    switch ($_POST['reply'][$i]){ 

    case "Single": 
    $selected_option = "Single"; 
    break; 

    case "Multiple": 
    $selected_option = "Multiple"; 
    break; 

    default: 
    $selected_option = ""; 
    break; 

    }  


    $replyquery = "SELECT ReplyId FROM Reply WHERE (ReplyType = '". mysql_real_escape_string($_POST['reply'])."')"; 
    $replyrs = mysql_query($replyquery); 
    $replyrecord = mysql_fetch_array($replyrs); 
    $replyid = $replyrecord['ReplyId']; 
+0

Wollen Sie damit sagen, dass Sie einen Prozess Seite haben und Sie möchten Benutzerauswahl mit $ _POST an diese Prozessseite senden? PHP ist serverseitiges Skript, das es nicht tun kann, müssen Sie Ajax oder jQuery Post-Methode verwenden. – anuragsn7

+0

@ anuragsn7 Nein, ich sage nicht, ich habe bereits AJAX und all das eingerichtet, alles was ich wissen will ist, was ist das korrekte Namensattribut für $ _POST ein überprüfter Radioknopf, also $ _POST [...]? – user1304328

+0

@ user1304328 Wie bei allen Formulareingaben stimmen Sie den '$ _POST'-Index mit dem' name = "" Attribut ab. – Umbrella

Antwort

1

Alles, was Sie tun müssen, ist, wenn Sie laufen Dein AJAX-Skript. Auf der Prozess-Seite würden Sie so etwas wie

<?PHP 
$reply1 = $_POST['reply1']; 
$reply2 = $_POST['reply2']; 

verwenden Sie jedoch den Namen der Eingabefelder zu name="reply[]", die die gesendeten Daten ein Array

UPDATE machen wird sich ändern wollen: Die bisherige ist nur gültig für Ankreuzfelder in diesem Fall (die es nicht gibt) Ist das Ankreuzfeld 1 markiert und das Ankreuzfeld 2 ist aktiviert, wird nur der Wert von Ankreuzfeld 2 auf dem Post angezeigt.

Da Antwort ist der Name mit einer Nummer nach für doppelte Fragen, können Sie immer alle veröffentlichten Variablen erhalten, indem Sie einfach $_POST verwenden. Dadurch wird Ihnen eine Reihe von ALL geben gebuchten Daten

Wenn Sie durch jede Antwort gehen wollen, da es dynamisch ist nur eine foreach-Anweisung tun

foreach($_POST as $k=>$v) { 
    //Run script to process each posted reply 
} 
+0

, wenn Sie Put-Name als ein Array [] sagte, das nur für die Radio-Buttons in der Form oder für die angefügten Radio-Buttons? – user1304328

+0

Es tut mir leid .. diese Methode gilt nur für Checkboxen. Wenn Sie mehrere Kontrollkästchen mit demselben Namen haben, sollten Sie ein Array erstellen. Wenn Sie dies nicht tun, überschreiben die Checkboxen das zuvor überprüfte. Was Sie haben, ist gut in der Geige, Weil Sie für jeden Satz von Fragen einen anderen Namen verwenden (Antwort, Antwort1, Antwort2 usw.) – bretterer

+0

, also ich nur $ _POST ['Antwort']? – user1304328