我有一个在不同文件中生成的下拉菜单。它是用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>";
}
?>
Ajax代码:
<script>
$("select#select2").change(function(){
$.ajax({
type: "GET",
url: "process.php",
data: "selected_key=" + $(this).val(),
success: function(result) {
$("select#text2").html(result);
}
});
});
</script>
答案 0 :(得分: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>";
}
?>
答案 1 :(得分: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>";
}
?>
答案 2 :(得分: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;
?>
像这样你可以添加静态选项
答案 3 :(得分:-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>