我在另一个文件中生成了一个下拉菜单。它是通过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>
我觉得你想太多了。
在添加数据库中的所有其他值之前,只需向<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>";
}
?>
<?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>";
}
?>
试试这个…
<?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;
?>
像这样,你可以添加静态选项
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>