2017-02-18 1 views
1

Wie bekomme ich die "ID" anstelle von "Name", wenn ich das Formular absende.html 5 Datenwert

<input type="text" list='name' name='test1'/> 
       <datalist id="test1"> 
        <?php 
         if(!empty($data)){ 
          foreach($data as $flag){ 
           echo "<option label ='".$flag['id']."' >".$flag['name']."</option>"; 
          } 
         }else{ 
          echo "<option> empty </option>"; 
         } 
        ?> 
       </datalist> 

Ich habe versucht, Wert mit = $ flag [ 'id'], aber ich habe immer noch "name" wenn ich es muss.

+0

Die 'id' wird nicht an den Server gesendet. Nur der 'Name' und' Wert'. – user6003859

Antwort

0

Die id wird nicht mit dem regelmäßigen Senden eines Formulars an den Server gesendet. Nur die Attribute name - und value sind.

Wenn Sie wirklich die id s auch erhalten möchten, könnten Sie ein verstecktes <input> Element mit einem Array für Wert, mit allen relevanten id s Sie wollen.

Hier ist ein Beispiel:

HTML

<form method="post"> 
    <input type="text" name="firstname" id="inp1" /> 
    <input type="text" name="surname" id="inp2" /> 
    <input type="hidden" name="ids[]" value="inp1" /> 
    <input type="hidden" name="ids[]" value="inp2" /> 
    <input type="submit" /> 
</form> 

PHP

foreach($_POST['ids'] as $id) 
{ 
    echo '<option label="' . $id . '">' . array_search($id, $_POST) . '</option>'; 
}