Как использовать php для подачи данных в автозаполнение jQuery? - PullRequest
0 голосов
/ 01 декабря 2010

Это продолжение предыдущего поста . К сожалению, опубликованные решения не сработали, и мои последующие вопросы не были рассмотрены. На всякий случай, потому что мои щедрые респонденты не заметили, что я ответил, я репостирую свою проблему.


Я пытаюсь создать форму, в которой определенные текстовые поля и текстовые области имеют автозаполнение.

Я использовал грозный плагин для WordPress для создания моей формы. Я использую плагин jQuery для автозаполнения для автозаполнения.

После реализации предложений одного из моих респондентов код теперь выглядит следующим образом:

<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); ?>');. К сожалению, это все еще не работает.

Кстати, код находится в теле page.php, шаблона, который wordpress использует для генерации статических страниц (форма на одной из них).

Я бы серьезно, серьезно оценил бы любую помощь в этом. Если этот подход тупиковый (на предыдущих постах было два других ответа, которые были у меня над головой), я был бы более чем готов изучить некоторые новые уловки (хотя это действительно помогло бы указать на соответствующий учебный ресурс .)

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2010

Вы должны использовать

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

, как показано в примере Автозаполнение . Также вы можете подумать об использовании JSON .

0 голосов
/ 01 декабря 2010

Я бы использовал 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));

...