2015-12-29 8 views
0

Динамически созданное текстовое поле будет иметь имена в формате массива.Двухмерный массив как имя объекта?

<input type="textbox" id="textbox[]" name="textbox[]"> 

Если обновление динамически создаваемый флажок будет:

<input type="checkbox" id="chkbox[]" name="chkbox[]"> 

$checkbox = $_POST['chkbox']; 
$id = "('" . implode("','", $checkbox) . "');" ; 
$sql = "UPDATE [table] SET [col] = [value] WHERE id IN " . $id . "; 

Как я мог бы сделать ту же самую идею с текстовыми полями?

+2

Это, вероятно, только я, но я не понимаю вопроса. – VolkerK

+0

Не означает, что часть 'I need' подчеркивает, что я имел в виду сэра? или мне нужно перефразировать мое предложение, если оно вводит в заблуждение? –

+0

Возможно, если бы вы могли [добавить] (http://stackoverflow.com/posts/34508013/edit) вывод 'var_export ($ _ POST);' - вы сохраняете/обновляете данные, поэтому я предполагаю, что вы используете POST для передавать данные) - и прокомментировать эти (конкретные) данные, это может помочь. – VolkerK

ответ

1

Поскольку у вас есть утверждение UPDATE в вашем вопросе, я предполагаю, что вы сначала отправляете существующим записям из своей базы данных (с некоторым идентификатором) клиенту.
В этом случае вы можете поместить этот идентификатор в имя поля, например.

<input type="text" name="text[47] value="..." /> 
<input type="text" name="text[74] value="..." /> 
<input type="text" name="text[39] value="..." /> 

, а затем на стороне сервера итерируем данные, такие как

foreach($_POST['text'] as $id=>$value) { 
    // your database action here, preferably a prepared statement 
} 

что-то, чтобы играть с:

<html> 
    <head> 
     <title>...</title> 
     <style type="text/css"> 
      span.editbtn { cursor: pointer; } 
     </style> 

    </head> 
    <body> 
     <form method="POST" action="test.php"> 
      <!-- something like this your script would produce from the SELECT query --> 
      <fieldset class="editgroup"><input type="text" name="post[47]" value="value for id 47" disabled /></fieldset> 
      <fieldset class="editgroup"><input type="text" name="post[74]" value="value for id 74" disabled /></fieldset> 
      <fieldset class="editgroup"><input type="text" name="post[89]" value="value for id 89" disabled /></fieldset> 
      <fieldset class="editgroup"><input type="text" name="post[31]" value="value for id 31" disabled /></fieldset> 
      <input type="submit" /> 
     </form> 
     <div id="foo">.</div> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('fieldset.editgroup').each(function() { 
        $(this).append('<span class="editbtn">&#x270e;</span>'); 
       }); 
       $('fieldset.editgroup').on('click', '.editbtn', function() { 
        $(this).siblings('input').prop('disabled', false); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

проверить результат в test.php через <pre><?php var_export($_POST); ?></pre>

+0

Спасибо! Для foreach() достаточно. –