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

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

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

Код выглядит так:

<script>

            $(document).ready(function(){
                var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
            $("#example").autocomplete(data);
  });
  </script>

Так что в основном мне нужно использовать php для извлечения данныхиз базы данных mysql и передайте его этим данным var.Я новичок в 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, но он не работал,Я застрял здесь.

Я могу понять большую часть кода, за исключением этой части:

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

Я не понимаю, что там делают данные [] ... если php будет кормитьданные в переменную data = line?

У меня есть около 15 полей формы text / textarea, каждое из которых должно извлекать данные, связанные с его заданным field_id.Если нет более простого способа сделать это, это означает, что мне придется написать 15 сценариев, каждый с определенным объектом $ field_id и jQuery с полевым селектором css.

Любая помощь, чтобы заставить это работать, была бы очень признательна.!

Ответы [ 3 ]

0 голосов
/ 24 ноября 2010

В соответствии с документами автозаполнения, вы можете передать 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) на .autocomplete('<?php echo $_SERVER['PHP_SELF']; ?>');

0 голосов
/ 24 ноября 2010

ваш 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);

тогда функция equ (response) jquery выдаст вам результат переменной javascript с вашими результатами в ней. Надеюсь, это поможет ...

0 голосов
/ 24 ноября 2010

Кодер неверен, это:

data[] = something;

вызовет синтаксическую ошибку в JS, это PHP-сокращение для переноса членов в массив и не работает в JS.

Попробуйте это:

data.push(unescape('<?php echo rawurlencode($value); ?>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...