2014-10-17 1 views
2

У меня есть такая форма, которая загружает деталь, используя функцию загрузки Jquery здесь является формойразмещения одного массива dimenstion к БД АЯКСА сообщению

<form id="form1" name="form1" method="post" action=""> 
<div id="tableBg"> 
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="list"> 
<thead> 
<tr> 
     <th width="39%" scope="col">WHITE LIST</th> 
     <th width="61%" scope="col">&nbsp;</th> 
     </tr> 
     </thead> 
</table> 

<div style="max-height:400px; overflow-y:auto"> 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" id="list"> 
    <tr class="sub_head"> 
     <td scope="col"><strong>REG. NO.</strong></td> 
     <td scope="col"><strong>STUDENT NAME</strong></td> 
     <td scope="col"><strong>GRADE</strong></td> 
     <td scope="col"><strong>MESSAGE ID</strong></td> 
     </tr> 
    <tbody></tbody> 
    </table> 
</div> 
<div id="PageFooter"> 
<input type="submit" name="save_result" id="save_result" value="Save Results" /> 
</div> 
</div> 
</form> 

и загружает загружает код ниже с другой страницы

do{ 
    ?> 
<tr <?php echo (($x%2) != 0) ? '' : ' class="alternate-row row"' ?>> 
    <td scope="col"><?php echo $learners['reg_no'];?></td> 
    <td scope="col"><?php echo $learners['surname']." ".$learners['full_names']." (".$learners['nickname'].")";?></td> 
    <td scope="col"><?php echo $learners['grd']." ".$learners['grade_section'];?></td> 
    <td scope="col"> 
    <input name="sms_id[<?php echo $learners['reg_no']; ?>]" type="text" size="3" /> 
    </td> 
    </tr> 
<?php $x++;}while($learners = $getLearners->fetch()); 

Этот код находится в форме, и внизу есть кнопка отправки. Это для размещено на process.php, который с помощью следующего кода, принт некоторого вывод

if(isset($_POST['submit'])){ 

    foreach($_POST['sms_id'] as $reg=>$msg_id){ 
     echo $reg. "/".$msg_id; 
    } 

}

вышеуказанных дисплеи оба значений, если форма размещена непосредственно из формы в process.php

Но я хотел использовать ajax и пробовал следующий код, который не работает. Просто опубликуйте $ msg_id, но не другое значение.

var formData = $("#form1").serializeArray(); 
      $.ajax({ 
       url: "models/process.php", 
       type: "POST", 
       data: formData, 
       success: function(data) 
       { 
        alert(data); 
       } 
      }); 

Этот код не работает, может кто-то может помочь? Заранее спасибо.

J D K

+0

где ваша '# form1' в html? –

+0

@jogesh_pi У меня есть код обновления, есть все. –

+0

** Просто отправьте $ msg_id, но не другое значение **, что это означает ** другое значение ** –

ответ

3

На самом деле, вы проверяете в вашем process.php if(isset($_POST['submit'])), не проходившую Аякса.

$('#form1').serializeArray() не включает данные для кнопки отправки.

Проверьте документацию здесь: http://api.jquery.com/serializearray/

Ваш PHP код (process.php) должен быть изменен на:

//if(isset($_POST['submit'])){ // this will not be available when using .serializeArray() 

    foreach($_POST['sms_id'] as $reg=>$msg_id){ 
     echo $reg. "/".$msg_id; 
    } 
//} 
1

Я думаю, что проблема его так, чтобы отправить форму, Вы должны входные значения в вашу форму, чтобы вы могли отправить их.

Попробуйте создать в скрытые поля все входы, которые вы пытаетесь отправить, и используйте form.serialize(), которого должно быть достаточно.

Пример:

<tr <?php echo (($x%2) != 0) ? '' : ' class="alternate-row row"' ?>> 
<td scope="col"><input type="hidden" value="Somevalue" name"attributeName"/> 
<?php echo  $learners['reg_no'];?></td> 
</tr> 
<?php $x++;}while($learners = $getLearners->fetch()); 

И ваш Аякс вызов:

var formData = $("#form1").serialize(); 
     $.ajax({ 
      url: "models/process.php", 
      type: "POST", 
      data: formData, 
      success: function(data) 
      { 
       alert(data); 
      } 
     }); 
4

Я не знаю, будет ли это большая помощь, но попробуйте добавить Аякс варианта традиционного

$.ajax({ 
     url: "models/process.php", 
     type: "POST", 
     traditional: true, 
     data: formData, 
     success: function(data) 
     { 
      alert(data); 
     } 
    }); 

Это изменяет способ передачи данных Ajax.