-1

我有一个在不同文件中生成的下拉菜单。它是通过 while 循环生成的,我想添加一个静态值( Select contract )。

现在下拉菜单如下所示:

1234
4321
2323
3232

我想让它像这样:

Select contracr
1234
4321
2323
3232

这是我在 index.php 中的代码:

<select id="text2" name="text2">

</select>

这是我在 process.php 中的代码(生成项目的地方):

<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>

阿贾克斯代码:

<script>
$("select#select2").change(function(){
    $.ajax({
        type: "GET",
        url: "process.php",
        data: "selected_key=" + $(this).val(),
        success: function(result) {
            $("select#text2").html(result);
        }
    });
});
</script>
4

4 回答 4

3

我觉得你想多了。

在添加数据库中的所有其他值之前,只需添加一个额外的选项<select>- 即文字值,而不是 PHP 生成的东西。给它一个像“0”或“NotSelected”这样的值,然后在你的验证例程中检查它。

哦,作为一个不相关的问题,不要这样做:

$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";

您正在向 SQL 注入敞开心扉。如果你不知道那是什么,请查一下。您应该为此使用准备好的/参数化的查询。PDO 和 mysqli 扩展都具有此功能,因此您应该使用其中一个而不是 mysql 扩展,后者已在最新版本中被弃用(即“这将很快从语言中删除,因此停止使用它”) PHP 的。


更新:

基于您使用 AJAX 请求直接更新 HTML 以获取<select>元素的新内容这一事实,您需要将<option>我提到的项目移动到您在 AJAX 请求中调用的脚本的一部分。

具体来说,您应该在foreach循环之前直接执行此操作:

<?php
$selectedKey = $_GET['selected_key'];

// DO SOME VALIDATION ON $selectedKey here
// Remember what I said about SQL injection and using mysqli/PDO

$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
echo "<option value='NotSelected'>Select Contract</option>";
while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>
于 2013-01-03T08:10:15.040 回答
1
<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);

echo "<option value='0'>Select Contractor</option>"; //Simply add this

while($row = mysql_fetch_assoc($run)) {
    echo "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>
于 2013-01-03T08:07:41.877 回答
1

试试这个..

<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
$str = "<option value='0'>Select anyone</option>";
while($row = mysql_fetch_assoc($run)) {
    $str .= "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
echo $str;
?>

Likt 这个你可以添加静态选项

于 2013-01-03T08:09:12.993 回答
-2
please used this code......
<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);

$str = "<option value='0'>Select Contractor</option>"; //Simply add this

while($row = mysql_fetch_assoc($run)) {
    $str .= "<option value='".$row['Number']."'>".$row['Number']."</option>";
}
?>


echo $str variable into your select box like this:-


<select id="text2" name="text2">
<?php echo $str;?>
</select>
于 2013-01-03T08:12:04.743 回答