2010-12-01 8 views
0

これはearlier postの続きです。残念ながら、投稿されたソリューションはうまくいかず、フォローアップの質問にも対処できませんでした。私の寛大な回答者が私が答えたことに気付かなかったためです。私は自分の問題を再開しています。phpを使用してjQueryオートコンプリートにデータをフィードする方法は?


特定のテキストフィールドとテキストエリアにオートコンプリートがあるフォームを作成しようとしています。

私はフォームを構築するために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); ?>');ビットを追加することを提案しました。残念ながら、まだ動作していません。

ところで、このコードはwordpressが静的ページを生成するために使用するテンプレートpage.phpの本体にあります(フォームはこれらのいずれかにあります)。

私は真剣に、真剣にこれに関するすべての助けに感謝します。このアプローチが致命的な終わり(以前の記事では、私の頭の上にあった2つの答えがもう1つありました)、私はいくつかの新しいトリックを学びたいと思っています(実際に関連する学習リソース)

ありがとうございます。

答えて

0

私が使用json_encodeをjsutし、それを単純化する:$entriesではなく、数値インデックス付き1の連想配列であればもちろん

<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> 

を上記を使用して、あなたが望むWAHTではないかもしれません。場合厥あなたはjson_encode(array_values($entries));

0

を行うことができます場合は、Autocomplete documentation例に示すように

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

を使用する必要があります。またJSONについては、 と思うかもしれません。

関連する問題