2010-12-01 7 views
0

Dies ist eine Fortsetzung von earlier post. Leider haben die geposteten Lösungen nicht funktioniert und meine Nachfragen wurden nicht beantwortet. Nur für den Fall, dass mein großzügiger Befragter nicht bemerkt hat, dass ich geantwortet habe, rekapituliere ich mein Problem.Wie verwendet man PHP, um Daten an jQuery Autocomplete zu übergeben?


Ich versuche ein Formular zu erstellen, wo bestimmte Textfelder und Textbereiche Autovervollständigung haben.

Ich habe das formidable-Plugin für WordPress verwendet, um mein Formular zu erstellen. Ich verwende die jQuery autocomplete plugin für den Autocomplete-Teil.

Nach den Vorschlägen von einer meiner Befragten Umsetzung sieht der Code nun wie folgt aus:

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

Mein Befragte die data.push(unescape('<?php echo rawurlencode($value); ?>'); Bit Zugabe vorgeschlagen. Leider funktioniert es immer noch nicht.

BTW, der Code ist im Körper von page.php, eine Vorlage, die WordPress verwendet, um statische Seiten zu generieren (das Formular ist auf einer dieser).

Ich würde ernsthaft, ernsthaft jede Hilfe dabei zu schätzen wissen. Wenn dieser Ansatz eine Sackgasse ist (in den früheren Beiträgen gab es zwei andere Antworten, die über meinem Kopf lagen), wäre ich mehr als bereit, einige neue Tricks zu lernen (obwohl es wirklich hilfreich wäre, auf eine relevante Lernressource hingewiesen zu werden) .)

Vielen Dank im Voraus.

Antwort

0

Ich würde jsut Verwendung json_encode und vereinfachen es:

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

Natürlich kann nicht die oben mit waht Sie wollen, wenn $entries ein assoziatives Array ein anstelle eines numerischen ist indiziert. Wenn das der Fall ist können Sie json_encode(array_values($entries));

0

zu tun haben Sie

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

zu verwenden, wie in dem Autocomplete documentation Beispiel gezeigt. Auch Sie könnten denken, über die Verwendung von JSON.