使用数据库条目自动填充 HTML 表单

Posted

技术标签:

【中文标题】使用数据库条目自动填充 HTML 表单【英文标题】:Autofill a HTML form with database entries 【发布时间】:2011-06-11 13:23:49 【问题描述】:

我想通过单击链接自动填充两个输入元素。这是我正在使用的代码:

 <script>

    function autoFill(depart_from, depart_to) 
        document.getElementById('depart_from').value = depart_from;
        document.getElementById('depart_to').value = depart_to;
    

 </script>

这里是链接:

...

echo "<tr class='odd'>";
echo "<td><span class='hover'><ahref='#'onClick='autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false;'>" . $row['departure'] ." » ". $row['destination'] . "</a><span></td>";
echo "</tr>";

无法让它工作!我做错了什么?

谢谢!

【问题讨论】:

【参考方案1】:

对于初学者,你的锚标签中的间距被打破了:

<ahref='#'onClick='autoFill(

应该是:

<a href='#' onClick='autoFill(

此外,您永远不会关闭函数并使用分号分隔语句:

autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false;

应该是:

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false;

最后,您可能希望将这些方法参数用引号括起来:

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false;

应该是:

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "');return false;

可能还有更多。要记住的一件事是尽量不要使用 echo 语句来发出大块 html。它使代码不那么容易阅读,更重要的是它增加了另一层“字符串化”,这使得在字符串中包含引号更加困难。

【讨论】:

php 变量传递给 javascript 的正确方法是使用 json_encode。不是addslashes,不是htmlentities(或htmlspecialchars),当然也不是什么都没有。 @Frit van Campen:确实,OP 的代码还有很多工作要做。 谢谢!我将对此尝试不同的方法。必须有一种更清洁的方法! 解决了!这次采用不同的方法,而不是愚蠢的方式 @Ismailp:很高兴听到这个消息!可能值得用新代码更新您的问题,或将其作为答案发布,以添加到该线程的内容中。其他用户有一天可能会发现这很有用。【参考方案2】:

a 标签上的间距错误,a href 之间需要一个空格。

您永远不会关闭函数调用的方括号,我认为您可能需要将参数放在引号中,具体取决于它们的类型:

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "'); return false;'

【讨论】:

【参考方案3】:

我通过查看这个问题解决了它:JQuery - Click Link Auto fill in input field

【讨论】:

以上是关于使用数据库条目自动填充 HTML 表单的主要内容,如果未能解决你的问题,请参考以下文章

在下一个记录条目的下拉列表中自动填充组合框

在 html 表单中禁用自动填充

jquery 防止自动填充表单

禁用 Firefox 自动填充 html 表单但保持自动完成

如何在html表单中自动填充输入字段

Rails 4 / jQuery:需要在表单输入中输入值以自动填充其他输入