2015-03-23 2 views
0

У меня есть вопрос в отношении формирования сериализации в PHP/JQuery ... Вот мой код ниже:форма сериализации отправки данных

<form name="myForm" method="post" action="page.php"> 
     <table> 
     <tr> 
      <td>Field 1</td><td>Field 2</td><td>Field 3</td> 
     </tr> 
     <?php 
      $i = 0; 
     while ($tempInfo=mysql_fetch_array(query)) { 
      $field1  = $tempInfo['field1']; 
      $field2  = $tempInfo['field2']; 
      $field3  = $tempInfo['field3']; 

      ?> 
      <tr> 
       <td><input type="hidden value="<?php echo $field1?>"> name=testValue</td><td><?php echo $field2 ?></td><td><?php echo $field3?></td><td><input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="getReport_<?php echo $i;?>" /></td></tr> 
      <?php 
       } 
      ?> 
     </table> 
     <input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /></form><div id="myResponse"></div> 

Тогда вот код JQuery:

<script type="text/javascript"> 
     function submitForm() { 
      var form = document.myform; 
      var dataString = $(form).serialize(); 
      $.ajax({ 
       type:'POST', 
       url:'report-gen.php', 
       data: dataString, 
       success: function(data){ 
       $('#myResponse').html(data); 
       } 
      }); 
      return false; 
      } 
      </script> 

Вот проблема, данные отправляются, но только данные в последней строке, а не на флажке. Как я могу удостовериться, что единственные передаваемые данные - это тот, который имеет флажок?

Спасибо, Кевин Дэвис

+0

Вы можете разделить фактическую разметку, которая создается? –

ответ

1

Если у вас есть несколько полей с одинаковым именем, PHP будет отбрасывать все, кроме последнего, если это имя не заканчивается в [] (который testValue не делает). Переименуйте свои входы.

0

Вместо использования скрытого поля вы можете поместить все данные в этот флажок и проанализировать его по возврату. Например изменить значение:

value="getReport_<?php echo $i;?>|$field1" 

Чтобы получить различные значения делают

list($report, $field1) = explode("|", $checkbox_value); 
Смежные вопросы