2015-12-02 1 views
1

Я использую jatery datatables в качестве плагина таблицы, чтобы отобразить список данных из mysql. все в порядке, скрипт работает хорошо. Но когда я пытаюсь представить форму данных из каждой строки, страница ничего не загружает.Datatables JQuery не может отправить POST из таблицы

Это моя страница источника .

<div id="product-grid" class="col-lg-6"> 
     <div class="txt-heading"><h3> Services </h3></div> 
     <table class="table table-striped table-bordered table-hover " id="dataTables-example"> 
     <thead> 
       <tr> 
        <th><strong>Name</strong></th> 
        <th><strong>Price</strong></th> 
        <th name="kategori"><strong>Kategori</strong></th> 
        <th><strong>Quantity</strong></th> 
        <th><strong>Action</strong></th> 
       </tr> 
     </thead> 
     <?php 
     $product_array = runQuery("SELECT * FROM menu ORDER BY id ASC"); 
     if (!empty($product_array)) { 
      foreach($product_array as $key=>$value){ 
     ?> 
     <form class="form-group" method="post" action="?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> 
<tbody> 
      <tr> 
       <td><strong><?php echo $product_array[$key]["name"]; ?></strong></td> 
       <td class="product-price"><?php echo $format->angka($product_array[$key]["price"]); ?></td> 
       <td> <?php echo $product_array[$key]["kategori"]; ?> </td> 
       <td> <input type="text" name="quantity" value="1" size="2" /> </td> 
       <td> 
        <input type="submit" value="Submit" class="btn btn-primary" /> 
       </td> 
      </tr> 
     </form> 
     <?php } 
     }?> 
</tbody> 
     </table> 
    </div> 

этого код я загрузить из admin.php через index.php страницу ..

<link href="<?php echo ASSETS.'bootstrap/dataTables/dataTables.bootstrap.css';?>" rel="stylesheet"> 
<script src="<?php echo ASSETS.'bootstrap/js/bootstrap.min.js';?>"></script> 
<script src="<?php echo ASSETS.'bootstrap/dataTables/jquery.dataTables.js';?>"></script> 
<script src="<?php echo ASSETS.'bootstrap/dataTables/dataTables.bootstrap.js';?>"></script> 

Что я хочу, когда пользователь нажимает представить, форма пост в action.php для обработки сценария.

Thankyou ..

+0

любой связанный код, который вы можете отправить? – RFLdev

+0

@RFLdev приведенный выше код в моем сообщении - это мой текущий код прямо сейчас. и я просто застрял в этой проблеме, которую у меня есть. –

ответ

0

форма не может быть дочерним элементом таблицы, TBODY или тр.

Вы можете иметь всю таблицу внутри формы. Вы можете иметь форму внутри ячейки таблицы. Вы не можете иметь часть таблицы внутри формы.

Используйте одну форму по всей таблице. Затем либо используйте нажатую кнопку отправки, чтобы определить, какая строка обрабатывается (быть быстрой), либо обрабатывать каждую строку (разрешая массовые обновления).

Все в порядке. Поместите свой <form> & </form> наружный стол.

<table></table> должен быть внутри <form></form>

Для примера: (правильный способ)

<form method="POST"> 
    <table id="mytable"> 
     <tr> 
      <td> 
      <input name="s1" type="text" /> 
      </td> 
      <td> 
      <input name="s2" type="text" /> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
      <input type="submit" name="submit" value="insert" /> 
      </td> 
     </tr> 
    </table> 
</form> 

И, это неправильный подход.

<table id="mytable"> 
    <form method="POST"> 
     <tr> 
      <td> 
       <input name="s1" type="text" /> 
      </td> 
      <td> 
       <input name="s2" type="text" /> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <input type="submit" name="submit" value="insert" /> 
      </td> 
     </tr> 
    </form> 
</table> 

Для получения дополнительной информации, проверьте Can't put PHP form in a tableForm doesn't accept all inputs rows in my form &

С OP Задаваемым способом сделать.

Мое мнение будет, используйте <table></table> только для отображения данных. Потому что вы не можете использовать <form></form> внутри <table></table>. Сделайте одно действие столбца, где вы передаете значение на другую страницу с этим идентификатором строки. И на этой странице (другая страница, как я писал), отображать данные (если требуется) этого продукта, включая Quantity. Это всего лишь предложение. Надеюсь ты понимаешь.

<div id="product-grid" class="col-lg-6"> 
    <div class="txt-heading"><h3> Services </h3></div> 
     <table class="table table-striped table-bordered table-hover " id="dataTables-example"> 
      <thead> 
       <tr> 
       <th><strong>Name</strong></th> 
       <th><strong>Price</strong></th> 
       <th name="kategori"><strong>Kategori</strong></th> 
       <th><strong>Action</strong></th> 
       </tr> 
      </thead> 
      <tbody> 
      <?php 
      $product_array = runQuery("SELECT * FROM menu ORDER BY id ASC"); 
      if (!empty($product_array)) { 
       foreach($product_array as $key=>$value) { 
       ?> 
        <tr> 
         <td><strong><?php echo $product_array[$key]["name"]; ?></strong></td> 
         <td class="product-price"><?php echo $format->angka($product_array[$key]["price"]); ?></td> 
         <td><?php echo $product_array[$key]["kategori"]; ?> </td> 
         <td> 
          <a href="Edit-Somepage.php?id=<?php echo $product_array[$key]["id"]; ?>">Edit</a> 
         </td> 
        </tr> 
       <?php } 
      }?> 
      </tbody> 
     </table> 
    </div> 
</div> 

Edit-Somepage.php

<? 
$id=$_GET['id']; 
$product_array = runQuery("SELECT * FROM menu WHERE id='$id'"); 
foreach($product_array as $key=>$value) { 
    $product_name=$product_array[$key]["name"]; 
    $product_price=$format->angka($product_array[$key]["price"]); 
} 
?> 
<form class="form-group" method="post" action="submit-SomePage.php"> 
    <?echo $product_name;?><br> 
    <?echo $product_price;?><br> 
    <input type='hidden' value="<?echo $id;?>" name='ProductId'> 
    <input type="text" name="quantity" value="1" size="2" /> <br> 
    <input type="submit" value="Submit" class="btn btn-primary" /> 
</form> 

представить-SomePage.PHP

<? 
$product_id=$_POST['ProductId']; 

using this $product_id save/update/submit product. 
//Update Query. 
?> 
+0

Спасибо за ответ, но другая проблема. Мне нужно использовать dataTables jquery plugin как мой скрипт таблицы. этот скрипт помогает мне замыкать данные таблицы. Например, для использования datatable я должен использовать

...... содержимое таблицы .....
. Если я разделяю таблицу, как ваш ответ выше, результат каждой строки будет отображаться в другой таблице ... –

+0

Привет @pitokeraf: Да, используйте. Но просто для отображения данных. Сделайте один столбец «Действие». В котором вы передаете ИД этой строки на другую страницу для отправки данных. Потому что невозможно использовать '

' внутри любого дочернего элемента '
'. Надеюсь ты понимаешь. –

+0

Извините, вы имели в виду, что мне нужно сделать другую страницу для обработки данных? у меня есть это. Я включил страницу в действие формы. Или вы можете объяснить мне в одном примере кода? Пожалуйста, помогите мне .... –

0
try this code 

<form action="" method ="POST"> 
    <table border="1"> 
     <tr> 
     <td> 
      <input type="text" name="usrname" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <input type="text" name="email" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <input type="password" name="password" /> 
     </td> 
     </tr> 
     <tr> 
     <td colspan="3"> 
      <input type="submit" name="submit_btn" value="login" > 
     </td> 
     </tr> 
    </table> 
</form> 
+0

Спасибо за ваш ответ. Да, это правда, если только одна или две строки. как насчет результата из базы данных. мы должны использовать foreach или while ... Я имел в виду, что каждая строка содержит сообщение для отправки. –

0

Получение справки формы @nana ответа, вы можете так сделать

форма является недействительным ребенок, но он действует под

<tr> 
<td> some field 
<td> some other field 
<td> **<form method="post">**somefield, some hidden field**</form>** 
</td> 

Таким образом, у вас есть элемент формы внутри которого действителен. Вы можете включить скрытый элемент, который вам нужен, и, таким образом, форма может быть отправлена ​​из jQuery DataTable.

Смежные вопросы