2013-03-18 3 views
0

я получил сценарий, который:Вставка PHP массив в JavaScript

  • считывает адреса из текстового файла
  • делает некоторые расчетам
  • вставок результатов в таблицу

Я хочу, чтобы заменить txt с php-массивом. Heres мой текущий код:

<script type="text/javascript"> 

    $.get("imones.txt", function (data) { 
     var array = data.split(/\r\n|\r|\n/); 
     var beforeLoad = (new Date()).getTime(); 
     var loadTimes = []; 
      var beforeTimes = [];       
     $('#frame_id').on('load', function() {            
      beforeTimes.push(beforeLoad);/
      loadTimes.push((new Date()).getTime());    
      $('#frame_id').attr('src', array.shift()); 
       try { 
       $.each(loadTimes, function (index, value) {     
        var result = (value - beforeTimes[index])/1000; 
         if (result < 0) { 
          result = result * (-1); 
         } 
        $("#loadingtime" + [index]).html(result);      
        beforeLoad = value;    
       }); 
       } catch(ex) {} 
     }).attr('src', array.shift()); 

</script> 

Он читает imones.txt, затем вставляет каждый URL в рамку, делает некоторые вычисления, а затем вставляет результаты в #loadingtime дел. Я хочу заменить imones.txt на php-массив. Также я хотел бы, чтобы результат хранился в другом php-массиве, а не сохранял его в div. Может кто-то помочь мне с этим?

+0

замены imones.txt на php, вы подразумеваете замену «imones.txt» на «imones.php», который содержит массив PHP, значение которого вы хотите получить? – serans

+0

Нет его просто '$ array = array();' в том же файле, он хранит те же URL-адреса, что и imones.txt – Edgar

ответ

2

Попробуйте что-то вроде этого:

<?php 
    $str = implode(',',$yourPhpArr); 
?> 

<script type="text/javascript"> 

    var urls = "<?=$str?>"; 

    var array = urls.split(/,/); 
    var beforeLoad = (new Date()).getTime(); 
    var loadTimes = []; 
    var beforeTimes = []; 

    $('#frame_id').on('load', function() {            
     beforeTimes.push(beforeLoad);/
      loadTimes.push((new Date()).getTime());    
      $('#frame_id').attr('src', array.shift()); 
       try { 
       $.each(loadTimes, function (index, value) {     
        var result = (value - beforeTimes[index])/1000; 
         if (result < 0) { 
          result = result * (-1); 
         } 
        $("#loadingtime" + [index]).html(result);      
        beforeLoad = value;    
       }); 
       } catch(ex) {} 
     }).attr('src', array.shift()); 

</script> 
+1

В зависимости от вашей конфигурации может не работать. В этом случае используется Вместо – serans

+0

Вы правы, но это действительно раздражает, когда вы вставляете много vars в php :) Я где-то читал, что в следующих версиях ' Narek

0

Пусть PHP файл эхо вашего массива:

echo Array(1,2,3,4,5); 

ваш HTML/JavaScript:

$.get("yourphp.php", function (data) { 
     var array = data.split(/\r\n|\r|\n/); 
     var beforeLoad = (new Date()).getTime(); 
     var loadTimes = []; 
      var beforeTimes = [];       
     $('#frame_id').on('load', function() {            
      beforeTimes.push(beforeLoad);/
      loadTimes.push((new Date()).getTime());    
      $('#frame_id').attr('src', array.shift()); 
       try { 
       $.each(loadTimes, function (index, value) {     
        var result = (value - beforeTimes[index])/1000; 
         if (result < 0) { 
          result = result * (-1); 
         } 
        $("#loadingtime" + [index]).html(result);      
        beforeLoad = value;    
       }); 
       } catch(ex) {} 
     }).attr('src', array.shift()); 

</script> 
Смежные вопросы