2013-08-08 1 views
1

У меня проблема с моим массивом javascript. Пыльник моего кода:php array в массив javascript document.write javascript_array

$namen = array(); 
    $mainimg = array(); 
    $sql1 = mysql_query("SELECT * FROM image WHERE id = ".$id.";"); 

     echo "<div class='normal'>"; 

     while($row = mysql_fetch_array($sql1)) 
     { 
      $namen[] = $row['bild']; 
      $mainimg[] = $row['mainimg']; 
      $number_array = count($namen); 
      ?> 
      <script type='text/javascript'> 
      <?php 
      for($a=1; $a <= count($namen); $a++){ 
       $php_array = array($a => $row['bild']); 
       $js_array = json_encode($php_array); 
       echo "var javascript_array = ". $js_array . ";\n"; 
       echo "document.write(javascript_array + '<br />');"; 

       } 
      ?> 
      </script> 
     } 

Теперь я получаю [объект] [объект] в браузере, но я хотел бы распечатку элементов, название картины. Что я могу сделать?

Спасибо за вашу помощь заранее.

С уважением, Яник

+1

Я не вижу смысла в js здесь вообще, вы можете просто использовать php для всего этого –

ответ

1

Вы пытаетесь напечатать Object как string. Что вам нужно сделать, так это получить доступ к вашим свойствам непосредственно из объекта.

<script> 
<?php $data = array('foo' => 'bar'); ?> 
var my_js_var = <?php echo json_encode($data); ?>; 
</script> 

С помощью этого скрипта, вы можете получить доступ к значению, как это:

document.write(my_js_var.foo); // writes 'bar' 
+0

Perfect !!! :-) Оно работает. Нет, я получаю ["test1.jpg"], например. Есть ли простой способ получить только test1.jpg? – yab86

+0

Вы можете проверить, имеет ли значение '$ php_array' одно значение, но это увеличит ваш код и может не стоить того. Если это не будет всегда одно значение, поэтому вам не нужно использовать массив или даже JSON, просто передайте значение JS var с одинарными кавычками, и это будет строка. Рад, что это помогло. Если он подходит, подумайте об ответе :) – lsouza

+0

Я хотел бы сделать галерею изображений, поэтому мне нужно поместить значения в массив javascript. :-(У меня это сейчас вот так: \t \t $ php_array = array ($ a => $ row ['bild']); .... $ a ++; Теперь я получаю, например, {"1": "test. jpg "} в браузере. Могу ли я получить только test.jpg с document.write.Я бы хотел протестировать его, потому что afterwoods мне нужен test.jpg в качестве источника для изображения, которое изменяется, нажимая на next- или prev- кнопка – yab86

0

Вам нужны перебрать массив и вывод полей, которые вы хотите для каждого элемента. Вы в настоящее время печатаете строковую версию объекта в JavaScript, которая всегда [object Object].

Смежные вопросы