我有 2 个不同名称的下拉列表,我试图只在一个字段中进行查询。
我正在使用一个 jQuery 函数,其中如果item 1选中,将显示下拉列表 1,如果item 2选中,将显示下拉列表 2。
这是我从 mysql 数据库和表填充下拉列表的方式:
<div id="minquep">
<label>Branch</label>
<SELECT name="user_min">
<OPTION VALUE="0">Choose a branch
<?=$minq_options?>
</SELECT>
</div>
<div id="albury">
<label>Branch</label>
<SELECT name="user_branch">
<OPTION VALUE="0">Choose a branch
<?=$al_options?>
</SELECT>
Run Code Online (Sandbox Code Playgroud)
这就是我通过填写带有下拉列表的表单将查询插入 mysql 的方式:
if (isset($_REQUEST['Submit'])) {
$sql = "INSERT INTO $db_table(branch) values ('".mysql_real_escape_string(stripslashes($_REQUEST['user_branch'])).",".mysql_real_escape_string(stripslashes($_REQUEST['user_min']))."')";
if($_REQUEST['user_branch']= ""){
($_REQUEST['user_branch']) = NULL;
}
if($result = mysql_query($sql ,$db)) {
echo '<script type="text/javascript">alert("The user has been added successfully!\n");return true;</script>';
echo "<meta http-equiv=\"refresh\" content=\"0;URL=add_user.php\">";
}
else {
echo "ERROR: ".mysql_error();
}
}
Run Code Online (Sandbox Code Playgroud)
测试场景是,我选择了下的值<select name="user_min">。所以我假设 sql 会绕过结果,user_branch因为它是空的。但它确实在插入查询之后打印'0'。例如,如果插入的($_REQUEST['user_min'])值是“Brisbane”,而 ($_REQUEST['user_branch']) 值是null(因为我没有在user_branch下拉列表下选择任何值),那么分支字段应该变成“Brisbane” ,知道user_branch是NULL。但它确实在我的 mysql 表中用0打印“BRISBANE” ,比如0, Brisbane。
我怎样才能解决这个问题?
我已经尝试过设置if条件,但没有用。
if($_REQUEST['user_branch']= ""){
($_REQUEST['user_branch']) = NULL;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试将user_min更改为相同的 name user_branch,但它没有获得选定的值,而不是Brisbane它只是打印'0'
一些东西 -
您在 $sql 之后设置 user_branch = NULL。
您在价值周围使用引号。非空值很好 - 您需要检查是否有空值,然后不要在 $sql 中使用引号。
您在 IF 语句中使用了单个“=”。这使您的 If 语句失败。将其更改为if($var == '')
更新
基于您现有代码的一些建议 - 但是还有其他最佳实践可以实现您想要实现的目标......
$user_branch = $_REQUEST['user_branch'];
$user_min = $_REQUEST['user_min'];
//you should validate above values first
if$user_branch == "" || $user_min == "") {
$db_value = "NULL";
} else
{
$db_value = "'".mysql_real_escape_string(stripslashes($user_branch.','.$user_min))."'";
}
$sql = "INSERT INTO $db_table(branch) values (".$db_value.")";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |