相关下拉列表

时间:2012-11-12 07:39:08

标签: php

我是PHP的新手..我需要你的帮助......

我有2个相关的下拉列表:

下拉列表1:手动插入值

下拉列表2:附加数据库中的值(基于下拉列表1中选择的条件的值)

然后,所选的两个值都将以另一种形式显示在文本框中。

我的问题是:

1)无法显示第二个下拉列表中的值。

2)第一个下拉列表中的值可以传递给其他形式,但第二个下拉列表不能。

请指导我。

我不知道如何在这里分享我的代码。

form1.php

//第一次下拉

<select name="fruit_name" id="fruit_name" style="font-family: Calibri;font-size: 10pt;" onchange="loadXMLDoc(this.value); ">
   <option value="0">-- please choose --</option>
   <option value="Pineapple">Pineapple</option>
   <option value="Apple">Apple</option> 

//第二次下拉列表      

        $fruit_name = $_POST['fruit_name'];
#Connect to MySQL
#Connect to database

$result = mysql_query("SELECT colour FROM fruit WHERE fruit_name = '$fruit_name'");

echo "<select name='colour' id='colour' style='font-family: Calibri;font-size: 10pt;'>";

while($row = mysql_fetch_assoc($result))
{
echo "<option value = ''>" . $row['colour'] . "</option>";
}
echo "</select>";

mysql_free_result($result);

//Closes specified connection
?>

form2.php

 <?php
//connection

        $fruit_name = $_POST['fruit_name'];
        $colour = $_POST['colour'];
?>
  <label>
  <input type="text" name="fruit_name" id="fruit_name" value = "<?php echo $fruit_name;?>" readonly>
  </label>
  <p>
    <label>
    <input type="text" name="colour" id="colour" value="<?php echo $colour;?>" readonly>
    </label>
  </p>

1 个答案:

答案 0 :(得分:0)

我通常不会这样做,但由于我现在有一些闲暇时间,我将提供你可以遵循的一般方法:

<head>标记之间加入以下内容。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

在下面,粘贴此代码

<script type="text/javascript">
    $(function(){
        $('select#fruit_name').change(function(){
                var selectedVal = $(this).val(); // get the selected value

                $.ajax({    // send ajax request to the php file to process data
                    type:'post',
                    url:'php-page-name.php',
                    data:{'value':selectedVal},
                    success:function(ret)   // display the result from php-page-name.php page
                    {
                        $('div#result').html(ret);
                    }
                });

        });
    });
</script>

让我们继续您的 HTML

    <select name="fruit_name" id="fruit_name" style="font-family: Calibri;font-size: 10pt;">
   <option value="0">-- please choose --</option>
   <option value="Pineapple">Pineapple</option>
   <option value="Apple">Apple</option> 
   </select>

<div id="result">
    <select>
        <option>Select One</option>
    </select>
</div>

php-page-name.php 页面(不要忘记创建此页面并将其放在与form1.php相同的文件夹中)

    <?php
    // put the code to connect to your database here


    $fruit_name = $_POST['value'];  // this will contain the value selected from first dropdown

    $result = mysql_query("SELECT colour FROM fruit WHERE fruit_name = '$fruit_name'");

echo "<select name='colour' id='colour' style='font-family: Calibri;font-size: 10pt;'>";

    while($row = mysql_fetch_assoc($result))
    {
        echo "<option value = '".$row['colour']."'>" . $row['colour'] . "</option>";
    }
    echo "</select>";

mysql_free_result($result);
    ?>

PS:我在这个例子中使用mysql_*函数,因为我假设你也是。但不建议这样做,因为它们很快就会被弃用。您可能希望切换为mysqliPDO