使用数据库条目自动填充 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 表单的主要内容,如果未能解决你的问题,请参考以下文章