2011-09-20 74 views
0

目前我正在一个课本订单HTML表单与PHP需要用PHP HTML表单帮助

用户显示的教科书清单,那里有一个数量下拉菜单中每个教科书(他们可以选择订购1个数量或2,3或4)

每本教科书都有一个unqiue textbookId编号。

如何创建一个可以确定他们订购的教科书和他们订购的数量的html表单?

我通常通过创建多个html表单(每个表单都包含textbookId的隐藏字段)来解决这类问题,但问题在于会出现多个提交按钮。

但我只有一个提交按钮为整个教科书列表。

能有人帮我:)感谢这么多提前

如果可能的话,你能告诉我如何处理在PHP中的数据也是如此。

干杯

这是我当前的HTML表单代码:

<div class="tables"> 
    <form action="process-order" id="login-form" method="get" name="login-form"></form> 
    <table class="orders"> 
     <tr> 
     <th>textbookId</th> 
     <th>Subject</th> 
     <th>Title</th> 
     <th>Price</th> 
     <th>Quantity</th> 
     </tr> 
     <tr> 
     <td>1</td> 
     <td>English</td> 
     <td>English ABC</td> 
     <td>33.00</td> 
     <td> 
      <div align="center"> 
      <select name="mydropdown"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
      </select> 
      </div> 
     </td> 
     </tr> 
     <tr> 
     <td>2</td> 
     <td>Math</td> 
     <td>Math SignPost</td> 
     <td>122.00</td> 
     <td> 
      <div align="center"> 
      <select name="mydropdown"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
      </select> 
      </div> 
     </td> 
     </tr> 
    </table> 
    <input type="submit" name="submit" id="submit" value="Next"> 
    </form> 
</div> 

回答

1

一种可能性是将书的ID编码到提交的表单元素中,例如<select name="book_1"> 这本书1。

<tr> 
    <td>1</td> 
    <td>English</td> 
    <td> 
    <div align="center"> 
    <select name="book_1"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
    </div> 
    </td> 
</tr> 
<tr> 
    <td>2</td> 
    <td>Math</td> 
    <td> 
    <div align="center"> 
    <select name="book_2"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
    </div> 
    </td> 
</tr> 

PHP处理书如下:

<?php 
$books = array(); 
if ($_GET) { 
    foreach ($_GET as $key => $value) { 
     $keys = split("_", $key); 
     if (count($keys) == 2 && $keys[0] == "book") { 
      $id = $keys[1]; 
      $books[$id] = $value; 
     } 
    } 
} 
// echo "Ordered: <br />"; 
// foreach ($books as $id => $value) { 
// echo "$id : $value <br />"; 
// } 
?> 
1

我suposse你已经有一个表中的数据的基础,从形式存储数据,对吧?

然后我只会在这里输出php方面,好吗?

action.php的

<?php 
if ($_POST) { 

$mydropdown = $_POST['mydropdown']; 
$mydropdown2 = $_POST['mydropdown2']; 

$response = mysql_query("INSERT INTO your_table ('id','mydropdown','mydropdown2') values (NULL,'$mydropdown','$mydropdown2') "); 

if (empty($response)) { die("Error in your query"); } 
} 


?> 

观察:你有名称,价格,您的书籍等,如果你想存储你需要创建输入字段信息,否则这些信息将不存储在您的数据库中。

在你的HTML端这样的东西。 <td>English ABC</td> - ><input type="text" value="" name="name_book" /> 与前面提到的输入字段相同。

0

你有没有想过使用JavaScript来解决这个问题?特别是jQuery?你可以调用一个函数来遍历,是这样的:

<script> 
    function submitChanges() { 
    $('.mydropdown').each(function(){ 
     ddlId = $(this).attr('id'); 
     id = ddlId.split('_'); 
     ddlVal = $(this).val(); 

     $.ajax({ 
     type:'POST', 
     url: <post_url>, 
     data: 'id='+id[1]+'val='+ddlVal, 
     success: function(){} 
     }); 

    }); 
    } 
</script> 

所以上面的功能将张贴的选择到指定页面,好处是,只要你想,你可以有很多的书。

当生成你的HTML,确保每个选择都有定义 '类' 和 'ID':

<select class="mydropdown" id="mydropdown_{textbookid}" name="mydropdown"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

的textbookid将通过PHP

被添加在后PHP将包含

if ($_POST) { 

    $id= $_POST['id']; 
    $val= $_POST['val']; 

    $query = "INSERT INTO purchase (textbookid, quantity) VALUES ({$id},{$val})"; 
}