添加静态值到下拉菜单


Adding static value to dropdown menu

我在另一个文件中生成了一个下拉菜单。它是通过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>