首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在所选项目后显示数据

问在所选项目后显示数据
EN

Stack Overflow用户
提问于 2012-12-20 16:26:00
回答 2查看 4.2K关注 0票数 0

首先,我要感谢大家对我上一个问题的积极回应。

现在我有另一个问题需要帮助。

我有一个带有项目列表的下拉菜单。该列表是在while循环中生成的。代码如下:

代码语言:javascript
复制
$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

代码语言:javascript
复制
$("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

代码语言:javascript
复制
<?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下拉菜单中看不到任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-20 16:36:56

我认为您最好使用第一个下拉菜单中的选项值$rows' key‘,并添加一个jQuery选择器,该选择器接受所选值并为该键获取相应的合约。

应该是这样的..

PHP代码

代码语言:javascript
复制
$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代码

代码语言:javascript
复制
$("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的"“标记。如下所示:

代码语言:javascript
复制
<?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,其中应将返回的选项放入其中。

票数 2
EN

Stack Overflow用户

发布于 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

好读

  1. The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13967949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档