如何使用PHP将数据提供给jQuery自动完成?

时间:2010-12-01 17:26:54

标签: php jquery wordpress jquery-plugins jquery-autocomplete

这是earlier post的延续。不幸的是,发布的解决方案不起作用,我的后续问题没有得到解决。为了防止这是因为我的慷慨受访者没有注意到我回复了,我正在重新提出我的问题。


我正在尝试构建一个表单,其中某些文本字段和文本区域具有自动完成功能。

我使用了强大的wordpress插件来构建我的表单。我正在使用jQuery autocomplete plugin作为自动完成部分。

在实施我的一位受访者的建议后,代码现在看起来像这样:

<script> 
$(document).ready(function(){ 
<?php global $frm_entry_meta; 
$entries = $frm_entry_meta->get_entry_metas_for_field(37, $order=''); ?> 
var data = new Array(); <?php foreach($entries as $value){ ?>
data.push(unescape('<?php echo rawurlencode($value); ?>'); 
<?php } ?> 
$("#field_name-of-the-school").autocomplete(data); }) 
</script>

// 37 is the field id I want to pull from in the database, 
// and #field_name-of-the-school is the css id 
// for the text field in the form where a user can enter the name of a school. 
// the data for that field is stored in the db under field id 37. 
// other fields, like school id, have their own field ids.

我的受访者建议添加data.push(unescape('<?php echo rawurlencode($value); ?>');位。不幸的是,它仍然没有用。

BTW,代码在page.php的主体中,这是wordpress用来生成静态页面的模板(表单在其中一个上面)。

我会认真地,非常感谢任何和所有帮助。如果这种方法是死路一条(在早期的帖子中,还有两个其他的答案在我脑海中),我会非常愿意学习一些新的技巧(虽然它真的有助于指向相关的学习资源。)

提前致谢。

2 个答案:

答案 0 :(得分:0)

我会jsut使用json_encode并简化它:

<script> 
$(document).ready(function(){ 
  <?php global $frm_entry_meta; 
  $entries = $frm_entry_meta->get_entry_metas_for_field(37, $order=''); ?> 
  var data = <?php echo json_encode($entries); ?>;

  $("#field_name-of-the-school").autocomplete({source: data});
});  // note you were missing a semicolon at the end of this, which i added
</script>

当然,如果$entries是关联数组而不是数字索引数组,那么使用上面的内容可能不是你想要的。如果是这种情况,您可以json_encode(array_values($entries));

答案 1 :(得分:0)

你必须使用

$("#field_name-of-the-school").autocomplete({ source : data });

Autocomplete documentation示例所示。你也许会想 关于使用JSON