如何将PHP变量用于jQuery .load()脚本?

时间:2012-12-07 16:10:21

标签: php jquery

我有这个带有.load()函数的jQuery脚本,这个脚本保存在名为header.php的文件中:

$(document).ready(function() {
    $('.my-wrapper').find(".wrapper-area").append('<div class="loadergif"></div>').load("file001.php?key=XXXXXX", function() {
    $(this).find('.wrapper-area').remove('.loadergif');
    var $container = $('.list-wrap');

    $container.imagesLoaded( function(){
        $container.masonry({
        itemSelector : '.my-wrapper'
        });
    });
});

另一方面,我在文件名为body.php上有这个PHP变量:

while($row = mysql_fetch_array($result)){
    $Key = $row['key'];
    echo '<div class="wrapper-area">';
       //jQuery script will produce something here             
    echo '</div><!-- .wrapper-area -->';
}

现在问题是如何从PHP文件中获取$ Key成为jQuery脚本的XXXXXX的一部分:'file001.php?key=XXXXXX'

请注意,$ Key是从WHILE循环动态生成的。意味着,每个循环周期都有不同的值。

之前感谢

3 个答案:

答案 0 :(得分:1)

在PHP中,替换以下行:

echo '<div class="wrapper-area">';

这个:

echo '<div class="wrapper-area" data-key="'.$Key.'">';


在jQuery中,替换以下行:

$('.my-wrapper').find(".wrapper-area").append('<div class="loadergif"></div>').load("file001.php?key=XXXXXX", function() {

这个:

$('.my-wrapper').find(".wrapper-area").each(function() {
   $(this).append('<div class="loadergif"></div>').load("file001.php?key"+$(this).data('key'), function() {
    ...
    ...
}); //close the each() call
}); //close document.ready()

答案 1 :(得分:0)

你的问题不太清楚,但我认为你想把你的负载线改为这个 -

.load("file001.php", {key:XXXXXX}, function() {

答案 2 :(得分:0)

你可以尝试这个来构建包装器:

while ($row = mysql_fetch_assoc($result))
{

  echo '<div class="wrapper-area" data-key="' . $row['key'] . '">';

  // ...

}

这适用于jQuery:

$(function()
{

  $('.my-wrapper').find('.wrapper_area').each(function()
  {

    $(this).append('<div class="loadergif"></div>').load('file001.php?key=' + $(this).attr('data-key'), function()
    {
      // ...
    }
    )

  }
  )

}
)