Php 向下拉菜单添加静态值

Php 向下拉菜单添加静态值,php,html,sql,Php,Html,Sql,我有一个在不同文件中生成的下拉菜单。它是通过while循环生成的,我想添加一个静态值Select契约 现在,下拉菜单如下所示: 1234 4321 2323 3232 Select contracr 1234 4321 2323 3232 我想这样做: 1234 4321 2323 3232 Select contracr 1234 4321 2323 3232 以下是我在index.php中的代码: <select id="text2" name="text2"> <

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

现在,下拉菜单如下所示:

1234
4321
2323
3232
Select contracr
1234
4321
2323
3232
我想这样做:

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>
试试这个

<?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;
?>

像这样,你可以添加静态选项

我认为你想得太多了

在添加数据库中的所有其他值之前,只需向中添加一个额外选项,即文本值,而不是PHP生成的值。给它一个类似于0或NotSelected的值,然后在验证例程中检查它

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

$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 received` WHERE Key = '".$selectedKey."'";
您正在向SQL注入敞开大门。如果你不知道那是什么,查一下。您应该为此使用准备好的/参数化的查询。PDO和mysqli扩展都具有此功能,因此您应该使用其中的一个,而不是mysql扩展,mysql扩展已被弃用,也就是说,这将很快从该语言中删除,因此请停止在最新版本的PHP中使用它

更新:

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

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


因为这是另一个文件,所以它不会出现在下拉菜单中。@user1914940-哈?这对我来说没有意义。如果现在不使用您提供和我修改的脚本,您是如何填充下拉列表的?这将在下拉菜单的末尾添加选择任何人,在顶部需要它:它将显示选择任何人作为第一个选项。然后它将填充循环中的其他选项..那么您通常会复制并粘贴其他人的答案,并将其作为您自己的答案发布吗?不,我没有复制粘贴请正确查看我已连接变量,然后将其回显到选择框中这是我的逻辑,请正确查看..相同的注释“//简单地添加此”和尼卡鲁斯早期的解决方案完全是巧合,是吗?我想自己加一个,但是下拉列表是在另一个文件中生成的,这让我很困惑。@user1914940-我认为您需要澄清在另一个文件中生成下拉列表的含义。@user1914940其他元素在哪里生成并不重要。因为这需要是第一个,所以您可以直接在后面添加它。您可以在我的原始问题中看到,标记位于index.php中,但是生成下拉菜单的循环正在进行中。php@AgentConundrum如果我在循环运行时每次都会生成静态值,那么我只需要一次。。。你真的应该改用PDO或mysqli。你应该将$selectedKey转换为int,以填补一个大的安全漏洞。
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>