Как отправить массив через $ .ajax - PullRequest
0 голосов
/ 19 февраля 2011

У меня новая проблема :) Я хочу отправить массив через $ .ajax в PHP Script.

<?php
$arrid=array("a","b","c","d","e","f");
?>

<script src="jquery.js"></script>
<script>
    var request = $.ajax({
      url: 'paidmail.php',
      dataType: 'json',
      data: 'id=<?php print_r($arrid); ?>',
      success: function(data) {
        console.log(data);
      }
    });
</script>

paidmail.php, просто повторить идентификатор.Но моя консоль всегда выдает это исключение:

unterminated string literal

, так как же можно отправить массив через $ .ajax на другой скрипт PHP?

Заранее спасибо:)

Ответы [ 3 ]

2 голосов
/ 19 февраля 2011

print_r() возвращает строку, которая будет содержать метасимволы Javascript, в частности одинарную кавычку ', что приведет к синтаксическим ошибкам.Вместо print_r используйте json_encode(), который преобразует массив PHP в синтаксически допустимую структуру данных Javascript.

  data: 'id=<?php echo json_encode($arrid); ?>',
1 голос
/ 19 февраля 2011

Заменить:

data: 'id=<?php print_r($arrid); ?>'

с:

data: {id: <?php echo json_encode($arrid);?>}
0 голосов
/ 19 февраля 2011

Марк, разве вы не хотите кодировать utf-8?

data: 'id=<?php echo json_encode(array_map('utf8_encode' , $arrid)); ?>',

И вам, вероятно, следует также использовать POST вместо GET:

type: "POST"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...