Посылать array мультипространственный PHP в jQuery (ajax?)

Если у меня есть array в php:

$items = array(
  "nombtre" => "botella";
  "precio" => "1";
  "descripccion" = "Botella de cristal"
);

Как я могу посылать это в jquery? чтобы использовать все index того же самого?

0
задан 19.01.2017, 10:41
0 ответов

Чтобы объявлять пространственный array multi в языке сценариев JavaScript начиная с данных о переменной PHP лучшее состоит в том, чтобы производить необходимый код (в документе HTML), чтобы определять Вашу стоимость используя функцию json_encode():

<?php
$prueba = [
  'valor1',
  [
    'valor2.1',
    'valor2.2',
  ],
  [
    'indice3.1' => 'valor3.1',
    'indice3.2' => 'valor3.2',
  ],
];
?><script type="text/javascript">
var prueba = <?= json_encode($prueba,
  JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
) ?>;
console.log(prueba);
</script>

Имей в виду, что, если массив ассоциативный, он превратится в объект вместо массива. В третьей стоимости моего массива примера ты сможешь наблюдать этот эффект.

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


Я издаю: Ну, в конце концов я увидел, что ты не говоришь о массиве multi пространственная, если не ассоциативного массива (точно то, что он комментировал тебе в конце моего первоначального ответа).

Здесь у тебя есть точный код для примера, который ты предлагаешь с синтаксисом, но не орфографией, исправленная:

<?php
$prueba = [
  'nombtre' => 'botella',
  'precio' => '1',
  'descripccion' => 'Botella de cristal',
];
?><script type="text/javascript">
var prueba = <?= json_encode($prueba,
  JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
) ?>;
console.log(prueba);
</script>

Если то, что ты хочешь, состоит в том, чтобы использовать только индексы (остается немного смущенным чувство твоего вопроса "чтобы использовать все index того же самого?") было бы нужно использовать array_keys():

<?php
$prueba = [
  'nombtre' => 'botella',
  'precio' => '1',
  'descripccion' => 'Botella de cristal',
];
?><script type="text/javascript">
var prueba = <?= json_encode($prueba,
  JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS
) ?>;
console.log(prueba);
</script>

Я надеюсь, что эти последние два примера удовлетворяют все вопросы, которые ты выдвигаешь.

4
ответ дан 03.12.2019, 17:37
  • 1
    Это индексов..., который я смог искать по имени, но когда выбирать имя, что, что автоматически смог работать стоимость других индексов. В любом случае я создал зал чата, но не sé có mo приглашать ее. она эта: chat.stackoverflow.com/rooms/133446/jquery , Чтобы мочь обсуждать это в узком кругу, так как это достаточно конкретная консультация... И я сомневаюсь в том, что никто má s имейте это же самое сомнение. –  19.01.2017, 11:29
  • 2
    ¿ solucionó проблема? –  20.01.2017, 11:39
  • 3
    Если señ or, я olvidó принимать ответ. Спасибо- –  20.01.2017, 18:15

Ввиду того, что PHP работает на сервере и javascript в клиенте, ты не можешь "посылать это" в самом строгом использовании слова.

Но есть способы мочь использовать это:

 <script>
 <?php 

     $items = array(
         "nombtre" => "botella",
         "precio" => "1",
         "descripccion" => "Botella de cristal"
     );

     echo "var items " . json_encode($items);

 ?>

 console.log(items);

 </script>

Это один из многих способов, которые у тебя есть делания этого, просто "рисует" информацию в месте и с подходящим форматом.

Этот код одинокий в иллюстративные эффекты, и очень улучшаемый.

Будь осторожен также, в как ты определяешь твои arrays, разделитель элементов - запятая",", не точка с запятой";".

2
ответ дан 03.12.2019, 17:37