首先,我要感谢大家对我上一个问题的积极回应。
现在我有另一个问题需要帮助。
我有一个带有项目列表的下拉菜单。该列表是在while循环中生成的。代码如下:
$query = "SELECT Key, Short FROM product WHERE Active = 1 OR Short LIKE 'Blue%'";
$run = mysql_query($query) or die(mysql_error());
echo 'Product: <br />';
?>
<select id="select2" name="select2">
<?php
$ids = 0;
echo "<option selected='selected'>-Select product-</option>";
while($rows = mysql_fetch_assoc($run)) {
echo "<option value=$ids>".$rows['Short']."</option>";
$ids++;
}
?>
</select><br /><br />现在我需要做的是在下面创建另一个下拉菜单,并根据他们从下拉菜单中选择的选项显示合同。他们选择的每个项目也有一个称为键的数字。现在,在另一个名为contracts的表中,我存储了具有相同值键的所有合约。So...in第二个下拉菜单我必须根据他们在第一个下拉菜单中选择的项目显示合同。
我真的希望它足够清楚,我有点困惑。
更新:好的,这是新的代码:
index.php
$("select#select2").change(function(){
$.ajax({
type: "GET",
url: "process.php",
data: "selected_key=" + $(this).val(),
success: function(result) {
$("select#text2").html(result);
}
});
});
</script>
<select id="text2" name="text2">
</select>这是我的process.php
<?php ## URL_TO_GET_CONTRACTS_FOR_KEY ##
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM contacts WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
while($row = mysql_fetch_assoc($run)) {
echo "<option value='..'>..</option>";
} ?>但是我在我的text2下拉菜单中看不到任何东西。
发布于 2012-12-20 16:36:56
我认为您最好使用第一个下拉菜单中的选项值$rows' key‘,并添加一个jQuery选择器,该选择器接受所选值并为该键获取相应的合约。
应该是这样的..
PHP代码
$query = "SELECT Key, Short FROM product WHERE Active = 1 OR Short LIKE 'Blue%'";
$run = mysql_query($query) or die(mysql_error());
echo 'Product: <br />'; ?>
<select id="select2" name="select2">
<?php
echo "<option selected='selected'>-Select product-</option>";
while($rows = mysql_fetch_assoc($run)) {
echo "<option value='".$rows['Key']."'>".$rows['Short']."</option>";
}
?>
</select>jQUERY代码
$("select#select2").change(function(){
$.ajax({
type: "GET",
url: "URL_TO_GET_CONTRACTS_FOR_KEY",
data: "selected_key=" + $(this).val(),
success: function(result) {
$("select#NEWSELECT").html(result);
}
});
});说明: URL_TO_GET_CONTRACTS_FOR_KEY是你必须编写的PHP文件的网址。在该文件中,您可以访问$_ get‘’selected_ key‘,使用该值来获取该键合同。在该文件中,您应该回显第二个select的"“标记。如下所示:
<?php ## URL_TO_GET_CONTRACTS_FOR_KEY ##
$selectedKey = $_GET['selected_key'];
$query = ..
$run = ..
while($row = mysql_fetch_assoc($run)) {
echo "<option value='..'>..</option>";
} ?>NEWSELECT应替换为select的id,其中应将返回的选项放入其中。
发布于 2012-12-20 16:33:18
php是服务器端,你不能只用php来做这件事,因为你需要ajax (如果你想这样做而不刷新页面)
只需在select下拉菜单上进行ajax调用,然后显示另一个
便笺
PHP整个ext/mysql扩展提供了所有以mysql_前缀命名的函数,它是officially deprecated as of PHP v5.5.0,将来将被删除。因此请使用PDO或MySQLi
好读
https://stackoverflow.com/questions/13967949
复制相似问题