数据库驱动的选择框在提交时为空
Posted
技术标签:
【中文标题】数据库驱动的选择框在提交时为空【英文标题】:Database driven select box being empty on submit 【发布时间】:2016-05-05 17:08:38 【问题描述】:我正在尝试使用 php 在数据库中提交表单值。在表单中,选择框的值来自数据库。
<?php include_once 'header.php';
$sql="SELECT uid,name FROM emitra_basic where block='$user'";
$result = $conn->query($sql);
//form validion
if(isset($_POST['submit']))
$eid =$_POST["eid"];
if($eid=="blank")
$flag=1;
$idErr="please Select E-MITRA";
$miatm =trim($_POST["miatm"]);
if(empty($miatm) || !preg_match("/^[a-zA-Z0-9 ]*$/",$miatm))
$flag=1;
$miErr="Please Enter Valid Id";
.............like this
if($flag==0)
$sqll="insert into **********";
//我的表格是
<form id="basic" method="post" name="basic">
<select class="select-style gender" name="eid">
<option value="blank">Please Select E-MITRA ID</option>
<?php
while($row=mysqli_fetch_array($result))
?>
<option value="<?php echo $row['uid']; ?>"><?php echo $row['uid']." (" . $row['name'] .")"; ?></option>
<?php
?>
</select>
<p class="contact"><label for="bid">Micro-ATM Serial No</label></p>
<input type="text" name="miatm" value ="<?php if (isset($miatm)) echo $miatm; ?>" /> <?php echo $miErr; ?>
<p class="contact"><label for="bid">Micro-ATM TID No</label></p>
<input type="text" name="tid" value ="<?php if (isset($tid)) echo $tid; ?>" /> <?php echo $tiErr; ?>
<input class="buttom" name="submit" id="submit" value="Add Me" type="submit">
看起来不错。但是当我尝试提交表单时,如果某个字段中的某些字段仍然为空,则它在选择框中显示空白值。 即使文本框为空,我如何在选择框中保持相同的选定值。
【问题讨论】:
php里面的前两行有没有??? 【参考方案1】:表单提交后需要保留下拉框的值。
select option
的用户 selected 属性。
<?php
if (isset($_POST['submit']))
$eid =$_POST["eid"];
if ($eid=="blank")
$flag=1;
$idErr="please Select E-MITRA";
$sql="SELECT uid,name FROM emitra_basic where block='$user'";
$result = $conn->query($sql);
?>
<select class="select-style gender" name="eid">
<option value="blank">Please Select E-MITRA ID</option>
<?php
while($row=mysqli_fetch_array($result))
$selected = (isset($_POST["eid"]) && $_POST["eid"] == $row['uid']) ? 'selected="selected"' : '';
?>
<option value="<?php echo $row['uid']; ?>" <?php echo $selected;?>><?php echo $row['uid']." (" . $row['name'] .")"; ?></option>
<?php
?>
</select>
【讨论】:
【参考方案2】:您需要在您的选择标签中提交后使用selected=""
或selected="selected"
作为属性为:
<?
$sql="SELECT uid,name FROM emitra_basic where block='$user'";
$result = $conn->query($sql);
?>
<select class="select-style gender" name="eid">
<option value="blank">Please Select E-MITRA ID</option>
<?php
while($row=mysqli_fetch_array($result))
$selected = ((isset($_POST["eid"]) && $_POST["eid"] == $row['uid']) ? 'selected=""' : '');
?>
<option <?=$selected?> value="<?php echo $row['uid']; ?>"><?php echo $row['uid']." (" . $row['name'] .")"; ?></option>
<?php
if(isset($_POST['submit']))
$eid = $_POST["eid"];
if($eid=="blank")
$flag=1;
$idErr="please Select E-MITRA";
?>
</select>
旁注:
在你的问题中,两行不在 php 中,我希望这是类型错误。
【讨论】:
values 出现在选择框中,但如果我尝试在一个文本框为空的情况下提交,它会为空 @omnath:我想您在代码中使用了 结束标记?是吗?没有在你的代码中看到以上是关于数据库驱动的选择框在提交时为空的主要内容,如果未能解决你的问题,请参考以下文章
React native - 如果表单提交时为空,则突出显示 TextInput
AjaxOption 中的字符串参数在提交时为空,但在响应中显示