2

多くの動的ドロップダウンを持つフォームを作成しています.最初のドロップダウンで選択された値が次に渡され、その値に基づいてクエリがデータベースに発行され、次のドロップダウンにデータが入力されます..このプロセスはここで4回行われます. .

ドロップダウンで選択された値を取得するために、フォームアクションを空白のままにしてフォーム送信にjavascript関数を使用しました..

すべての値を取得したら、この情報をデータベースに保存する必要があります。そのために、これらの値を次のフォームに渡す必要がありますが、フォームアクションが空白であるため、ページがリロードされます...

<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script language="javascript" type="text/javascript">
function showproduct(product_name)
{
    document.frm.submit();
}
</script>
<script language="javascript" type="text/javascript">
function showpacking(batch_no)
{
    document.frm.submit();
}
</script>
<script language="javascript" type="text/javascript">
function showprice(packing)
{
    document.frm.submit();
}
</script>
</head>

<body>

<form action="" method="post" name="frm" id="frm">
<table width="500" border="0">
  <tr>
    <td width="119">Product Name</td>
    <td width="371">
    <select name="product_name" id="product_name" onChange="showproduct(this.value);">
    <option value="">--Select--</option>
    <?php
     $sql1="select distinct product_name from fertilizer";
    $sql_row1=mysql_query($sql1);
    while($sql_res1=mysql_fetch_assoc($sql_row1))
    {
    ?>
    <option value="<?php echo $sql_res1["product_name"]; ?>" <?php if($sql_res1["product_name"]==$_REQUEST["product_name"]) { echo "Selected"; } ?>><?php echo $sql_res1["product_name"]; ?></option>
     <?php
     }
     ?>
    </select>
    </td>
    </tr>
    <tr>
    <td>Batch No</td>
    <td id="batch">
    <select name="batch_no" id="batch_no" onChange="showpacking(this.value);">
    <option value="">--Select--</option>
    <?php
    $sql="select distinct batch_no from fertilizer where product_name='$_REQUEST[product_name]'";
    $sql_row=mysql_query($sql);
    while($sql_res=mysql_fetch_assoc($sql_row))
    {
    ?>
    <option value="<?php echo $sql_res["batch_no"]; ?>" <?php if($sql_res["batch_no"]==$_REQUEST["batch_no"]) { echo "Selected"; } ?>><?php echo $sql_res["batch_no"]; ?></option>
    <?php
    }
    ?>
    </select>
    </td>
  </tr>

   <tr>
    <td>Packing</td>
    <td id="packing">
    <select name="packing" id="packing" onChange="showprice(this.value);">
    <option value="">--Select--</option>
    <?php
    $sql2="select distinct packing from fertilizer where product_name='$_REQUEST[product_name]' and batch_no='$_REQUEST[batch_no]'";
    $sql_row=mysql_query($sql2);
    while($sql_res2=mysql_fetch_assoc($sql_row))
    {
    ?>
    <option value="<?php echo $sql_res2["packing"]; ?>" <?php if($sql_res2["packing"]==$_REQUEST["packing"]) { echo "Selected"; } ?>><?php echo $sql_res2["packing"]; ?></option>

    <?php
    }
    ?>
    </select>
    </td>
  </tr>

   <tr>
    <td>price per unit</td>
    <td id="price">


    <?php
    $sql3="select distinct rate_per_unit from fertilizer where product_name='$_REQUEST[product_name]' and batch_no='$_REQUEST[batch_no]' and packing=$_REQUEST[packing]";
    $sql_row=mysql_query($sql3);
    while($sql_res3=mysql_fetch_assoc($sql_row))
    {
    ?>
    <input type="text "name="price" id="price" value="<?php echo $sql_res3["rate_per_unit"]; ?>" >
    <?php
    }
    ?>
    </td>
  </tr>


   <tr>
    <td>
    <input type="submit" name="Save" value="save">
    </td>
  </tr>

  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body>
</html>
4

2 に答える 2

0

ソース: http://roshanbh.com.np/2008/01/populate-triple-drop-down-list-change-options-value-from-database-using-ajax-and-php.html

例: http://roshanbh.com.np/dropdown/

私の継承者は、投稿を作成する前に Googleを使用してください。

注: 与えられた例は、要件に似ています。

于 2012-08-23T12:56:24.207 に答える
0

交換

<input type="submit" name="Save" value="save">

次のようなもので:

<input type="button" name="Save" value="Save" 
onclick="
document.getElementById('frm').action = 'next_form.php' ;
document.getElementById('frm').submit();
"/>
于 2012-08-23T13:15:32.487 に答える