2010-11-23 2 views
1

私は、特定のテキストフィールドとテキストエリアにオートコンプリートがあるフォームを作成しようとしています。jQueryオートコンプリートにデータをフィードするためにPHPを使用するにはどうすればよいですか?

私はフォームを構築するために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> 

だから基本的に私は、MySQLデータベースからデータを取得し、そのデータVARにそれを養うためにPHPを使用する必要があります。

のコードは次のようになります。私は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番号と、このコードを実行しようとしたが、それは動作しませんでした。私はここで立ち往生している。

私はこの部分を除いて、ほとんどのコードを理解することができます:私は[]がやっているデータが... PHPは、VARにデータを供給しなければならないものを得ることはありません

var data = new Array(); 
<?php foreach($entries as $value){ ?> 
data[] = <?php echo $value ?> 

データ=行?

私はおよそ15のフォームtext/textareaフィールドを持っています。それぞれは、与えられたfield_idに関連付けられたデータをプルする必要があります。これを行うより簡単な方法がない限り、これは15のスクリプトを書く必要があることを意味し、それぞれはフィールドのcssセレクタを持つ特定の$ field_idとjQueryオブジェクトを持っています。

これを動作させる助けがあれば、非常に感謝しています!

data[] = something; 

それが配列にメンバーをプッシュするためのPHP-速記だとJSでは動作しません、JSで構文エラーが発生します。

答えて

0

コーダは、これは、間違っています。

はこれを試してみてください:

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

他の2つは私の頭の上にあるので、私はこのルートに行くつもりです。私はあなたが提供したコードを差し込もうとしましたが、どこにdata [] =何か;ありました。まだ動かない。コードは次のようになります。ページの本文にあります。? ; –

+0

+0

// 37私は、データベース内からプルしたいフィールドIDで、#FIELD_NAME - - - 学校の中にテキストフィールドのCSSのIDですユーザーが学校の名前を入力できるフォーム。そのフィールドのデータは、フィールドid 37のdbに格納されます。スクールIDのような他のフィールドには、独自のフィールドIDがあります。 –

0

オートコンプリートのドキュメントによると、あなたはデータのパラメータとしてURLを渡すことができます。それは言われて、次のようなものです:あなたのjQueryのコードであなたのjqueryのは、あなたのphpでこの

$("#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 
      } 

     }); 
}); 

ようになります​​

0

.autocomplete(data)を交換し、

<?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; 
    } 
?> 

をページはすべての情報を取得した後、このような結果をエコーし​​ます。

echo "var result=" . json_encode($results); 

eval(応答)jquery関数は、javascript変数結果に結果を渡します。 これは役に立ちます。

関連する問題