Перемещать переменные PHP в jQuery и наоборот

Каков лучший способ?

Я увидел этот вопрос, где проходят переменные этой формы:

<?php
 $row= "pantalla";
?>

<script type="text/javascript">
  var row = '<?php echo $row;?>'
</script>

Также применимый в arrays

<?php
   $row= array( "pantalla","chip","flex" );
?>

<script type="text/javascript">
    var row = [ <?php echo implode("','",$row);?> ]
</script>

Также я увидел, что возможно делать с json_encode($row) но я не знаю как функция и во всех сайтах, что я искал объяснения, они - обманщицы.

Если у меня есть array $row[], сделав json_encode() как я делаю, чтобы использовать их в jquery? А именно помещать это в переменную jquery и использовать это.

Я ИЗДАЮ ВОПРОС, ЧТОБЫ ДОБАВЛЯТЬ БОЛЬШЕ ДАННЫХ:

Я стремлюсь к тому, чтобы сделать один автозавершите с базы данных.

У меня есть двухмерный так называемый array $data и я хочу послать это в jquery, чтобы использовать Вашу стоимость как выборы для autocomplete.

<?php
    $i=0;
    $query = $db->query("SELECT * FROM piezas" );
    while ($row = $query->fetch_assoc()) {
        $data[$i]['id'] = $row['id'];
        $data[$i]['codigo'] = $row['codigo'];
        $data[$i]['nombre'] = $row['nombre'];
        $i++;
    }
    json_encode($data);
    ?>
    <script type="text/javascript">
        $( function() {
        var autocomlpetePiezas = <?php echo $json_encode($data) ?>
            $( "#piezas" ).autocomplete({
                source: autocomlpetePiezas
            });
        });
    </script>

Я ИЗДАЮ первоначальный код autocomplete jqueryUI:

$( function() {
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $( "#tags" ).autocomplete({
      source: availableTags
    });
  } );
0
задан 13.04.2017, 16:00
0 ответов

Чтобы производить в рукописном шрифте PHP массив / объект, чтобы быть использованной в языке сценариев JavaScript ты можешь использовать json_encode() следующего способа:

<?php
$prueba = new stdClass();
$prueba->matriz = [
  'indice1' => 'valor1',
  'indice2' => 'valor2',
];
$prueba->propiedad = 'valor de propiedad';
?><script type="text/javascript">
console.log(<?= json_encode($prueba,
    JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
) ?>);
</script>

С json_encode() ты кодируешь данные в JSON, чтобы мочь быть использованными языком сценариев JavaScript.

Хотя безопасность функции json_encode() это обычно быть достаточно, плохое осуществление в браузере, или что изменят назначенный по умолчанию способ, это могла бы быть проблема, а следовательно рекомендуемо использовать выборы JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS. Без этих выборов </script> он конвертировался бы в <\/script> и с ними он превратился бы в \u003C\/script\u003E.

В моем коде я использовал класс с массивом и свойством для того, чтобы у тебя был достаточно полный пример.


Я издаю, чтобы обновлять мой ответ на твое редактирование:

<?php
    $query = $db->query("SELECT * FROM piezas" );
    $data = [];
    while ($row = $query->fetch_assoc()) {
        /* Agregamos únicamente los nombres */
        $data[] = $row['nombre'];
    }
?>
<script type="text/javascript">
  $( function() {
    var autocompletePiezas = <?= json_encode($data,
      JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
    ) ?>;
    $( "#piezas" ).autocomplete({
      source: autocompletePiezas
    });
  });
</script>
1
ответ дан 03.12.2019, 17:38
  • 1
    Останься, не функционируя... –  18.01.2017, 12:52
  • 2
    Я существую añ adido có я говорю оригинал array, который использует autocomplete jqueryui. –  18.01.2017, 13:02
  • 3
    ¿ Podrí схвати готовить мне пример mГ-nimo проверяемо (es.stackoverflow.com/help/mcve)? (С определенными данными, не полученными с базы данных) –  18.01.2017, 13:02
  • 4
    Сейчас функционируй правильно. Есть какой-то способ открывать частный чат пара консультировать вещи? –  18.01.2017, 13:43
  • 5
    Когда комментарии накапливаются, у тебя выходит ссылка в чат, но всегда ты можешь использовать чат chat.stackoverflow.com invitá ndome в зал, который ты создал бы. –  18.01.2017, 13:54

в мое смиренное мнение, тебе не стоило бы больше использовать AJAX?

У тебя был бы твой рукописный шрифт:

<script>
        $.ajax({
            url: 'controller.php', //Tu archivo donde estará tu consulta
            type: 'POST', 
            dataType: 'json',
        })
        .done(function(data) {
            console.log(data); //Imprime tu arreglo, observa la estructura
        })
        .fail(function() {
            console.log("Error al cargar el arreglo");
        });
</script>

Твой файл php:

<?php
    $array = array(
                0=>array("id"=>"1","codigo"=>"a","nombre"=>"user1"),
                1=>array("id"=>"2","codigo"=>"b","nombre"=>"user2"),
                2=>array("id"=>"3","codigo"=>"c","nombre"=>"user3"));


    echo json_encode($array);
?>

Привет!

1
ответ дан 03.12.2019, 17:38
  • 1
    То, что он хочет предотвратить, точно, эта, названная добавочный HTTP. Ваш mé все гарантирует немедленную оплату наличными переменной во времени груза. –  20.01.2017, 21:53
  • 2
    Или пойдите, я понимаю! (Независимо, которому вызов был синхронным или así ncrona, не asegurarí в это наличие) Привет! –  23.01.2017, 19:11