簡體   English   中英

需要幫助php html表單

[英]Need help with php html form

目前我正在編寫一本用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>

我建議您在數據庫中已經有一個表來存儲表單中的數據,對吧?

然后我會在這里僅輸出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" />與前面提到的輸入字段相同。

一種可能性是將書籍ID編碼為提交的表格元素,例如書本1的<select name="book_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 />";
// }
?> 

你有沒有想過用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>

因此,上面的函數會將選擇POST到給定頁面,這樣可以獲得所需數量的書籍。

生成HTML時,請確保每個select都定義了“class”和“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})";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM