我正在尝试构建一个表单,其中某些文本字段和文本区域具有自动完成功能。
我使用了强大的wordpress插件来构建我的表单。我正在使用jQuery autocomplete plugin作为自动完成部分。
代码如下所示:
<script>
$(document).ready(function(){
var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
$("#example").autocomplete(data);
});
</script>
所以基本上我需要使用php从mysql数据库中提取数据并将其提供给该数据var。我是一个php新手,所以我不知道该怎么做。在强大的插件上工作的编码人员为var数据部分建议了以下代码:
<?php
global $frm_entry_meta;
$entries = $frm_entry_meta->get_entry_metas_for_field($field_id, $order='');
?> //db_frm_entry_metas is the name of the mysql db that stores the values for every field from the form. I suspect get_entry_metas_for_field is a function added by the formidable plugin. $field_id is the id for a given field on the form.
var data = new Array();
<?php foreach($entries as $value){ ?>
data[] = <?php echo $value ?>;
<?php } ?>
我尝试在$ field_id的位置使用id号运行此代码,但它不起作用。我被困在这里
我能理解大部分代码,除了这一部分:
var data = new Array();
<?php foreach($entries as $value){ ?>
data[] = <?php echo $value ?>
我不知道数据[]在那里做什么......如果php将数据提供给var data = line?
我有大约15个表单text / textarea字段,每个字段都需要提取与其给定field_id相关联的数据。除非有更简单的方法,否则这意味着我必须编写15个脚本,每个脚本都有一个特定的$ field_id和带有字段的css选择器的jQuery对象。
非常感谢任何有助于此工作的帮助!
答案 0 :(得分:0)
编码器错了,这个:
data[] = something;
会在JS中导致语法错误,它是将成员推送到数组的PHP简写,并且在JS中不起作用。
试试这个:
data.push(unescape('<?php echo rawurlencode($value); ?>');
答案 1 :(得分:0)
根据自动填充文档,您可以传递网址作为数据参数。话虽如此,做一些如下的事情:
<?php
// --- PLACE AT VERY TOP OF THE SAME FILE ---
$search = isset($_GET['q']) && !empty($_GET['q']) ? $_GET['q'] : null;
if (!is_null($search))
{
$matches = Array();
// some search that populates $matches based on what the value of $search is
echo implode("\r\n",$matches);
exit;
}
?>
然后,在您的jQuery代码中将.autocomplete(data)
替换为.autocomplete('<?php echo $_SERVER['PHP_SELF']; ?>');
答案 2 :(得分:0)
你的jquery会是这样的
$("#example").change(function(){
$.ajax(
{
type: "POST",
url: "php_page.php",
data: "data=" + $("#example").val(),
beforeSend: function() {
// any message or alert you want to show before triggering php_page.php
},
success: function(response) {
eval(response);
// print your results
}
});
});
获取所有信息后,在你的php页面中回显这样的结果。
echo "var result=" . json_encode($results);
然后eval(响应)jquery函数会给你javascript变量结果和你的结果。 希望这会有所帮助...