2010-06-07 4 views
2

Я понимаю, что для того, чтобы вернуть сложную переменную PHP в Javascript, это должно быть сделано через AJAX и json_encode. Может ли кто-нибудь дать мне реальный пример (как PHP, так и код Javascript)? Допустим, у нас есть два-тусклый массив в PHP:Возвращение многомерного массива PHP к Javascript/AJAX

$twoDArr = array(array('Greg', 44, 'Owner'), 
        array('Joe', 23, 'Renter'), 
        array('Susan', 39, 'Owner'), 
        array('John', 32, 'Renter) 
       ); 

Как бы мы это вернуть к аналогичному двухмерного массива в JavaScript с использованием json_encode?

+0

как вы хотите массив в JSON? – apis17

+1

Э ... вы имеете в виду не вызовы 'json_encode()' и 'JSON.parse()'? –

+0

Э-э, я не знаю. Мой опыт довольно ограничен всем этим. Вот почему я хотел бы увидеть несколько примеров. Если вы знаете несколько простых примеров, не стесняйтесь публиковать их. – GregH

ответ

2
<?php 

$twoDArr = array(array('Greg', 44, 'Owner'), 
        array('Joe', 23, 'Renter'), 
        array('Susan', 39, 'Owner'), 
        array('John', 32, 'Renter) 
       ); 
?> 

<script> 
twoDArr = JSON.parse(<?=json_encode($twoDArr)?>) 
alert(twoDArr[0][0]) //alerts 'Greg' 
alert(twoDArr[0][1]) //alerts '44' 
alert(twoDArr[1][0]) //alerts 'Joe' 
</script> 
+2

Хотя этот пример, безусловно, работает, обычно лучше избегать eval, когда присутствует простая альтернатива. В этом случае вы можете заменить выражение eval на JSON.parse () Для достижения такого же эффекта. – Rookwood

+0

@Rockwood: Я отредактировал свой ответ, чтобы отразить ваше предложение – tipu

+0

Извините за то, что вы настолько тупые ... у вас есть «JSON.parse ()« Что такое «? =» - это то, что некоторые вид сокращений? Я попробовал это на своей примерной странице, и у меня ничего не получилось. – GregH

0

Ваша программа будет Ран в более простой способ, как это:

 <?php 

      $twoDArr = array(array('Greg', 44, 'Owner'), 
           array('Joe', 23, 'Renter'), 
           array('Susan', 39, 'Owner'), 
           array('John', 32, 'Renter) 
          ); 
     ?> 

     <script> 
      var twoDArr = <?php echo json_encode($twoDArr); ?>; 
      alert(twoDArr[0][0]) //alerts 'Greg' 
      alert(twoDArr[0][1]) //alerts '44' 
      alert(twoDArr[1][0]) //alerts 'Joe' 
     </script> 
Смежные вопросы