我有两个问题:
1)我试图用mysql表中的数据填充表单的字段。但由于某些未知原因,只要我将它们放在文本字段中,我就会在值的末尾得到一个尾随/
。
<input type="text" id="first_name" name="first_name" <?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>/>
功能
function checkDefaultValue($val,$ret="")
{
if($val=="" || $val=='not specified')
{
return $ret;
}
else
{
return $val;
}
}
然而,如果我只是回应<?php echo('value='.checkDefaultValue($vals['user_firstname'])); ?>
我没有在值的末尾得到尾随/
。任何想法的家伙?
2)从db填充表单中的数据的最佳方法是什么?我基本上做了edit profile
类的事情,我希望这些值可以在各自的字段中预先填充。哦,这不需要ajax等......
答案 0 :(得分:2)
不要忘记引号:
<input type="text" id="first_name" name="first_name" value="<?php echo checkDefaultValue($vals['user_firstname']); ?>" />
答案 1 :(得分:1)
对于您的#2问题,只有一种方法可以填写字段:设置字段的value
属性。无论是在页面生成时服务器端执行此操作,还是在客户端使用AJAX或普通javascript Javascript都无关紧要 - 您仍然只是使用value属性(或selectedIndex或textarea内容,无论如何)填充表单字段
如果你在服务器端进行,你必须通过htmlspecialchars()
传递值,否则你插入的数据如果包含任何HTML元字符,可能会破坏表单({{1} },'
,"
,<
)并导致您网站上的XSS漏洞。
如果您在客户端进行此操作,那么您必须使用>
等进行等效转义,以防止数据中的任何流浪json_encode()
破坏Javascript。