使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)
Posted
技术标签:
【中文标题】使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)【英文标题】:Save value from textbox(where value is displayed on being fetched from DB) in DB using PHP PDO 【发布时间】:2016-04-14 01:21:02 【问题描述】:我有一个包含多个文本框的表单。对于这样一个文本框,我从 DB 中获取数据并使用 echo 语句在文本框中显示值。
但是,填满整个表单并点击提交后,除此之外的所有文本框中都有值。
我正在使用 PDO 并将值保存在 mysql Db 中。我对 php 很陌生,无法弄清楚!
我的代码:
<?php
if(isset($_POST["submit"])=="Save")
$RestName = $_POST['username'];
if (empty($RestName))
echo "Restname is empty";
else
echo "Restname is not empty";
?>
<form role="form" action="" method="post">
<?php
$STM = $conn ->prepare("SELECT * FROM vendorusers WHERE vd_user_email=:email");
$STM->bindParam(':email',$email);
$STM->execute();
$rows = $STM->fetchAll();
foreach ($rows as $row)
$username = $row['vd_user_name'];
?>
<input type="text" class="form-control" id = "username" name = "username" value= "<?php echo $username; ?>">
<?php ?>
<button type="submit" name="submit" id="submit" value = "Save" class="btn btn-primary pull-left">Save</button>
</form>
此代码显示“Restname 为空”;
如何在提交期间获取值(从数据库中获取并显示在文本框中)?
【问题讨论】:
【参考方案1】:请将输入 name='username' 的名称更改为 name='username[]'。在 name 中使用数组以获得多个结果。
【讨论】:
【参考方案2】:使用isset
的测试是错误的 - 您需要将其更改为if( isset( $_POST['submit'] ) && $_POST['submit']=='Save' )
等或使用empty
,因为这会隐含isset
,如下所示。
<?php
$RestName = !empty( $_POST["submit"] ) && $_POST["submit"]=='Save' && !empty( $_POST['username'] ) ? $_POST['username'] : false;
echo $RestName ? "Restname is empty" : "Restname is not empty";
?>
【讨论】:
谢谢...但是你能告诉我如何在提交时填充 $Restname 中的值吗? Cz value 中的 echo 语句是在屏幕上显示该值,而不是将其存储在 value 字段中。 我不确定我是否理解 - 如果 $restname` 变量存在于 POST 数组中,则在上述语句中设置,否则设置为 false。以上是关于使用 PHP PDO 在 DB 中保存来自文本框的值(从 DB 中获取值时显示的值)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自 Ajax 变量的 PHP PDO 处理许多 WHERE 子句