2011-01-16 3 views
1

Wie würde ich mich über eingehende Formulardaten Parsen, wo die Namensänderungen basierend auf dem Abschnitt der Website wie:PHP: Parsing einer bestimmten Form Eingangsgröße

<input type="radio" name="Motorola section" value="Ask a question"> 

wo ‚Motorola Abschnitt, dass sein können, oder Verizon Abschnitt oder Blackberry Abschnitt, etc.

Ich habe leider keine Kontrolle über die Änderung der bestehenden Formulare, so muss einen Weg finden, mit dem zu arbeiten, was da ist.

Grundsätzlich muss ich in der Lage sein, sowohl die name = "" Daten als auch die entsprechenden Wert = "" Daten zu erfassen, um die E-Mail, die richtig gesendet wird, ausfüllen zu können.

Antwort

2

Nun, Sie nicht über ein HTML-Formular, sondern nur Feldnamen und -werte in $_POST erhalten. Sie müssen also schauen, was Sie daraus machen können.

Holen Sie sich die bekannten und festen Felder von $ _POST und unset() die Sie haben [zu vereinfachen]. Dann iteriere über den Rest. Wenn " section" die einzige Konstante ist, sehen Sie dann heraus, dass für:

foreach ($_POST as $key=>$value) { 
    if (stristr($key, "section")) { 
     $section = $value; 
     $section_name = $key; 
    } 
} 

Wenn es mehrere Abschnitte (Sie hat nicht gesagt), dann bauen einen Abschnitt => Wert Array statt.

+0

Dank Mario, das war genau das, was ich brauchte. –

0
<form action="formpage.php" method="post"> 
<input type="radio" name="Motorola_section" value="Ask a question"> 


</form> 
$motorola = $_POST['Motorola_section']; 
if ($motorola =='Ask a question') 
{ 
form submit code if motorola is selected 
} 
0

Nun, zunächst einmal sollten Sie keine Leerzeichen im Namensfeld haben (obwohl es mit ihnen funktionieren sollte).

Angenommen, es handelt sich um ein Formular, können Sie den Wert über die Variablen $ _POST (für die Methode POST) und $ _GET (für die Methode GET) abrufen.

Sie können die Variablen auch mit print_r ($ _GET) oder print_r ($ _POST) überprüfen.