2015-11-18 133 views
3

我正在使用Jquery的數據表來顯示錶單中的所有員工的詳細信息,當我提交表格時,它只發布第一頁的表格值。但我需要發佈的所有表單值數據表格提交所有記錄

這裏是我的代碼

jQuery(document).ready(function(){ 
 
\t jQuery('#emptable').dataTable(); 
 
\t 
 
});
<link rel="stylesheet" href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.min.css" type="text/css" /> 
 
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
 
<script src="https://cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script> 
 
<form name="emp" method="post"> 
 
<table cellpadding="0" cellspacing="0" border="0" class="stdtable" id="emptable"> 
 
    <thead> 
 
     <tr> 
 
     <th class="head0">S.No</th> 
 
     <th class="head1">Name</th> 
 
     <th class="head0">Dep Name</th> 
 
     <th class="head1">Comments</th> 
 
     </tr> 
 
    </thead> 
 
    <tr> 
 
    <td>1<input type='hidden' name='serialno' value='1'></td> 
 
    <td>xyz<input type='hidden' name='name[]' value='xyz'></td> 
 
    <td>DE<input type='hidden' name='dep[]' value='DE'></td> 
 
    <td><textarea name="comments[]"></textarea></td> 
 
    </tr> 
 
    <tr> 
 
    <td>2<input type='hidden' name='serialno' value='2'></td> 
 
    <td>abc<input type='hidden' name='name[]' value='xyz'></td> 
 
    <td>DED<input type='hidden' name='dep[]' value='DED'></td> 
 
    <td><textarea name="comments[]"></textarea></td> 
 
    </tr> 
 
    <tr> 
 
    <td>3<input type='hidden' name='serialno' value='3'></td> 
 
    <td>adc<input type='hidden' name='name[]' value='adc'></td> 
 
    <td>EDE<input type='hidden' name='dep[]' value='EDE'></td> 
 
    <td><textarea name="comments[]"></textarea></td> 
 
    </tr> 
 
    <!-- Like all 'N' records will display here --> 
 
    <input type="submit" name="submit" value="submit"> 
 
</table> 
 
</form>

這裏是我的表單提交代碼

<?php 
include_once("includes/dbConnect.inc.php"); 
if(isset($_POST['submit'])){ 
$serialno=$_POST['serialno']; 
for($i=0; $i< $serialno;) 
{ 
$name=$_POST['name'][$i]; 
$dep=$_POST['dep'][$i]; 
$comments=$_POST['comments'][$i]; 
$query=mysqli_query($con, "INSERT INTO xyz(......remaining code)"); 
$i++; 
} 
if($query){echo "Inserted";} 
else{echo("Error description: " . mysqli_error($con));} 
} 
?> 

當我運行這段代碼並提交表單,只有第一個頁面值(前10行記錄)插入到數據庫中。但我需要將所有表格記錄插入到數據庫中,任何人都可以幫助我,我該如何實現這一點。

+0

只顯示每頁10項。需要更改架構,或者您必須提交每個頁面,然後移動到另一個頁面 – sinaza

+0

輸入所有評論後是否有任何可能性提交表單? – angel

+0

@天使你可以增加頁面的記錄限制。 –

回答

0

試試這個:

<?php 
    include_once("includes/dbConnect.inc.php"); 
    if(isset($_POST['submit'])){ 
    // $serialno=$_POST['serialno']; 
    for($i=0; $i< 1000) 
    { 
    $name=$_POST['name'][$i]; 
    $dep=$_POST['dep'][$i]; 
    $comments=$_POST['comments'][$i]; 
    $query=mysqli_query($con, "INSERT INTO xyz(......remaining code)"); 
    $i++; 
    } 
    if($query){echo "Inserted";} 
    else{echo("Error description: " . mysqli_error($con));} 
    } 
    ?> 
+0

不,它不工作,因爲它插入後10個記錄的表格數據然後它將插入空值 – angel

+0

我建議您需要在插入數據庫進行測試之前在呼叫頁面上顯示記錄。 –

+0

什麼值$ serialno是在PHP文件? –

1

試試這個。這是正確的解決方案。

HTML:

<link rel="stylesheet" href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.min.css" type="text/css" /> 
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<script src="https://cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script> 

<form id="formID" name="emp" method="post"> 
<table cellpadding="0" cellspacing="0" border="0" class="stdtable" id="emptable"> 
    <thead> 
     <tr> 
     <th class="head0">S.No</th> 
     <th class="head1">Name</th> 
     <th class="head0">Dep Name</th> 
     <th class="head1">Comments</th> 
     </tr> 
    </thead> 
    <tr> 
    <td>1<input type='hidden' name='serialno[]' value='1'></td> 
    <td>xyz<input type='hidden' name='name[]' value='name1'></td> 
    <td>DE<input type='hidden' name='dep[]' value='dep1'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>2<input type='hidden' name='serialno[]' value='2'></td> 
    <td>abc<input type='hidden' name='name[]' value='name2'></td> 
    <td>DED<input type='hidden' name='dep[]' value='dep2'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='3'></td> 
    <td>adc<input type='hidden' name='name[]' value='name3'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep3'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='4'></td> 
    <td>adc<input type='hidden' name='name[]' value='name4'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep4'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='5'></td> 
    <td>adc<input type='hidden' name='name[]' value='name5'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep5'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='6'></td> 
    <td>adc<input type='hidden' name='name[]' value='name6'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep6'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='7'></td> 
    <td>adc<input type='hidden' name='name[]' value='name7'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep7'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr><tr> 
    <td>3<input type='hidden' name='serialno[]' value='8'></td> 
    <td>adc<input type='hidden' name='name[]' value='name8'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep8'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='9'></td> 
    <td>adc<input type='hidden' name='name[]' value='name9'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep9'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='10'></td> 
    <td>adc<input type='hidden' name='name[]' value='name10'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep10'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='11'></td> 
    <td>adc<input type='hidden' name='name[]' value='name11'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep11'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <tr> 
    <td>3<input type='hidden' name='serialno[]' value='12'></td> 
    <td>adc<input type='hidden' name='name[]' value='name12'></td> 
    <td>EDE<input type='hidden' name='dep[]' value='dep11'></td> 
    <td><textarea name="comments[]"></textarea></td> 
    </tr> 
    <!-- Like all 'N' records will display here --> 
    <input type="submit" name="submit" value="submit"> 
</table> 
</form> 

的JavaScript:

<script> 
    jQuery(document).ready(function(){ 
     var oTable = jQuery('#emptable').dataTable(); 

     $("#formID").submit(function(event) {   
      $.ajax({ 
       type: "POST", 
       url: "post.php",     
       data: oTable.$('input, textarea').serialize(), 
       success: function(response){ 
        alert(response); 
       } 
      }); 
      event.preventDefault(); // Prevents default form submit 
     });  
    }); 
</script> 

PHP(post.php中):

<?php 

    echo "<pre>"; print_r($_POST); 

?> 

希望這會有所幫助。

+0

嘿天使試試這個解決方案。它工作正常。 –

+0

感謝您的時間,但它不起作用,顯示空白警示框 – angel

+0

不,它在我的工作結束。你做錯了什麼。只需替換我的代碼,然後再次檢查或創建測試演示。 –