2012-01-04 2 views
1

Можно создать дубликат:
What is the safest way of passing arguments from server-side PHP to client-size JavaScriptКак вставить переменную PHP в JavaScript Object/массив

Цель: Заменить имя статического файла в JavaScript Object с данными PHP.

Проблема:

Я не знаю, если я мой синтаксис или логика является правильным, как я не получаю никаких ошибок JS или PHP. Хуже всего мой сценарий не дает желаемых результатов. Вы можете увидеть реальную страницу в http://www.iamvishal.com/dev/property/burradon-road-burradon линии 197

объектов JavaScript, которые я хочу сделать с помощью PHP:

var data = { 'JPEG/1.jpg': { caption: '' }, 'JPEG/2.jpg': { caption: '' }, 'JPEG/3.jpg': 
{ caption: '' }, 'JPEG/4.jpg': { caption: '' }, 'JPEG/5.jpg': { caption: '' }, 
'JPEG/6.jpg': { caption: '' }, 
'JPEG/7.jpg': { caption: '' }, 'JPEG/8.jpg': { caption: '' },}; 

Так что нужно заменить JPEG/1.JPG с переменной PHP $ файла , Ниже мой код.

<script type="text/javascript"> 

var data = { ; 


<?php 
$queryglob ="JPEG/*".$node->field_ropertyid['und'][0]['value'].".jpg"; 
// Here I am getting all the file names as per my condition. 

foreach (glob($queryglob) as $filename) { 
// here I am want each file name to be assigned into the javascript object 
?> 

data = data+'+<?php print $filename ; ?> +':{caption:''}, ; 
<?php 

} 
?> 

data = data+}; 

</script> 
+0

Что такое $ узел? Кажется, что JPEG - это каталог в той же директории, что и этот файл PHP. Это правда? – abelito

+0

$ node - это массив, загруженный cms ie drupal. Он содержит всю информацию о данных. JPEg - это каталог, который содержит все изображения, но сценарий загружается index.php –

ответ

2

Почему вы не используете json_encode

<?php 
$data = array(); 
foreach (glob($queryglob) as $filename) $data[$filename] = array('caption' => ''); 
?> 
<script type="text/javascript"> 
var data = <?php echo json_encode($data); ?> 
</script> 

Это гораздо более умный, чем строить строку

+0

wow! это было быстро. Я попробую и вернусь к ребятам –

+0

+1 для json_encode – naomik

+0

Привет, Я использую тот же json_encode, но когда я печатаю этот массив, он показывает [object Object]. Любая идея? –

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