передача параметра из файла .php в файл .js - PullRequest
2 голосов
/ 17 января 2012

как мне вызвать массив из файла php в файл .js?

пока у меня есть это в моей functions.php.

function background(){

  global $post;
  $bgsrc = get_post_meta($post->ID, 'background', true);
   if($bgsrc != null){
    $bgsrc = explode("\n", $bgsrc);
    $ctr=0;
    foreach($bgsrc as $value){ ?> 
     <input type="hidden" value="<?php echo $value; ?>" class="bgimgsrc" id="bgimgsrc-<?php echo $ctr++; ?>" >
    <?php }
   }
 }

в моем файле .js у меня есть это, но оно не работает ..

function backgroundsizer(){
 var ctr= {image:jQuery('.bgimgsrc').val()}

 jQuery.supersized({
  // Functionality
  slide_interval          :   10000,  // Length between transitions
  transition              :   1,    // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
  transition_speed  : 900,  // Speed of transition

  // Components       
  slide_links    : 'blank', // Individual links for each slide (Options: false, 'num', 'name', 'blank')
  slides      :   ctr

 });
}

Ответы [ 3 ]

0 голосов
/ 17 января 2012

вы не можете использовать переменную php напрямую из javascript.если вы хотите использовать значения, то вы должны сделать переменные js, используя значения php во время выполнения

<?php
$weight = 10;
?>
<script>
var weight = <?php echo $weight;?>;
alert(weight);
</script>
0 голосов
/ 17 января 2012

Вы можете запросить данные из PHP с помощью jQuery, например, с помощью AJAX-запроса. Затем эти данные могут быть проанализированы и использованы соответственно.

Это может работать примерно так:

  1. jQuery отправляет запрос в скрипт PHP, используя AJAX.
  2. PHP-скрипт возвращает запрошенные данные, в данном случае массив, который может быть выражен в виде строки с разделенными элементами
  3. jQuery получает строку и анализирует ее в массив, для этого вы можете использовать регулярные выражения.

Надеюсь, это поможет. Хорошего дня.

0 голосов
/ 17 января 2012

Попробуйте:


function backgroundsizer(){
  var valArr = new Array();
  jQuery(".bgimgsrc").each(function() {
    valArr.push(jQuery(this).val());
  });
  //you will have values in "valArr" array, you can manipulate it, like
  var joinedVals = valArr.join(","); // just an example

Надеюсь, это поможет

...