2012-04-03 9 views
0

Ich habe ein Formular mit mehreren Textfeldern, die dynamisch erstellt werden, jetzt alle diese Textfelder haben den gleichen Namen können sagen txt, jetzt gibt es keine Möglichkeit, dass, wenn Formularverarbeitung passiert konnten wir lesen alle Textfelder Werte mit $_POST Methode, die von so genannten gleichen Namen sind. Wenn möglich wie?Wie bekomme ich Post von den gleichen Namen Textboxen in PHP

Antwort

4

Sie haben Ihre Textfelder nennen txt[] so erzeugt PHP eine numerisch indiziertes Array für Sie:

<?php 
// $_POST['txt'][0] will be your first textbox 
// $_POST['txt'][1] will be your second textbox 
// etc.  

var_dump($_POST['txt']); 
// or 
foreach ($_POST['txt'] as $key => $value) 
{ 
    echo 'Textbox #'.htmlentities($key).' has this value: '; 
    echo htmlentities($value); 
} 

?> 

Ansonsten ist der letzte Textbox‘Wert wird alle anderen Werte überschreiben!

Sie könnten auch assoziative Arrays erstellen:

<input type="text" name="txt[numberOne]" /> 
<input type="text" name="txt[numberTwo]" /> 
<!-- etc --> 

Aber dann müssen Sie kümmern sich um den Namen nehmen, um sich anstatt dass PHP es zu tun.

0

Wenn Sie Name möchten, könnten Sie die Eingabe mit txt[name1] benennen, dann können Sie es Wert von $_POST['txt']['name1'] erhalten. $_POST['txt'] wird ein assoziatives Array sein.

1

Erstellen Sie Ihre Textfeld mit Namen txt []

<input type='text' name='txt[]'> 

Und in PHP sie als

lesen
$alTxt= $_POST['txt']; 
$N = count($alTxt); 
    for($i=0; $i < $N; $i++) 
    { 
     echo($alTxt[$i]); 
    }