如何自动填写表单数据?

时间:2011-01-02 16:33:01

标签: php mysql html-form

我有两个问题:

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等......

2 个答案:

答案 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。