来自数据库的数据作为PHP中文本框的值

时间:2014-03-03 12:53:20

标签: php mysqli

我正在使用数据库中的数据设置一些文本框的值,如图所示。

$qry="select * from branch where id=4";
$res=$con->query($qry);
$r=$res->fetch_assoc();

实际上我正在使用echo语句中的文本框打印表格,如下所示:

echo '
<td>Incharge:</td><td><input type="text" name="incharge" size="38" value='.'$r["incharge"])'.'></td>';

但问题是它只打印文本框中的第一个字符串。例如,获取的$ r [“incharge”]的值为Ankur Lakhani,但它只打印Ankur 。 任何解决方案

6 个答案:

答案 0 :(得分:3)

您的输出HTML如下所示:

<input type="text" name="incharge" value=Ankur Lakhani>

正如您可以通过突出显示来判断的那样,

它被解释为:

<input type="text" name="incharge" value="Ankur" Lakhani="Lakhani">

添加引号以确保使用整个值:

<input type="text" name="incharge" value="Ankur Lakhani">

您还应该添加转义,因为您的字符串包含HTML敏感字符,例如">

<input type="text" name="incharge" value="<?php echo htmlspecialchars($r["incharge"]); ?>"/>

相关:htmlentities() vs. htmlspecialchars()

答案 1 :(得分:1)

当您输出数据作为文本输入的值时,您应该将其转义, 使用htmlentites函数:

<input type="text" name="incharge" value="<?php echo htmlentities($r["incharge"]); ?>"/>

参考:http://it1.php.net/htmlentities

答案 2 :(得分:0)

您忘记为您的值设置“”。

试试这个:

<?php
$qry="select * from branch where id=4";
$res=$con->query($qry);
$r=$res->fetch_assoc();
?>
<input type="text" name="incharge" value="<?php echo $r['incharge'];?>">

答案 3 :(得分:0)

如果问题出在您的客户端,那么这就是

'$r["incharge"])'

将其更改为

"$r['incharge'])"

答案 4 :(得分:0)

试,

value = "<?php echo $r['incharge']; ?>" 

答案 5 :(得分:0)

试试这个

<input type="text" name="incharge" value="<?= $r['incharge'];?>">

或使用类似<?= htmlspecialchars($r['incharge'])?>

必须在配置文件中启用Short_open_tag