2010-11-23 107 views
1

我试图建立一个表单,其中某些文本字段和文本区域具有自动完成功能。如何使用php将数据提供给jQuery自动完成?

我已经使用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数据库中提取数据,并将其输送到数据变种。我是一个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数据=行?

我有大约15个表格text/textarea字段,每个字段都需要提取与其给定的field_id相关的数据。除非有更简单的方法来做到这一点,这意味着我将不得不编写15个脚本,每个脚本都有一个特定的$ field_id和带有字段的CSS选择器的jQuery对象。

任何帮助得到这个工作将非常感谢!

回答

0

的编码是错误的,这样的:

data[] = something; 

将导致JS语法错误,这是一个PHP的速记推动部件到一个数组和JS不起作用。

试试这个:

data.push(unescape('<?php echo rawurlencode($value); ?>'); 
+0

我要走这条路,因为其他两条路都在我的头上。我尝试在你提供的代码中插入data [] = something;是。还是行不通。这是代码的样子,它在页面的主体中。PHP的,这WordPress使用生成静态页面的模板(形式是其中之一): – 2010-11-24 18:22:10

0

根据自动完成的文档,你可以通过URL作为数据参数。话虽这么说,做一些如下列:

<?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)与​​

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变量结果。 希望这会有所帮助...

相关问题