在Success函数内检索多个值并将它们存储到javascript变量中

时间:2012-07-14 15:29:35

标签: php javascript jquery ajax

这是我的索引文件,我想从fetch.php中获取值。 $('#loader').html($(response).fadeIn('slow'));这允许获取所有值并在div = loader中显示它。但我想将单个返回值存储到javascript值。

     $.post("fetch.php?url="+$('#url').val(), {}, function(response){
    //var $res=$(response);
    //var title =$res.filter('.title').text();   (not wrking)
    //$('#title').val(title);
    $('#loader').html($(response).fadeIn('slow'));              
    $('.images img').hide();                                      
    $('#load').hide();
    $('img#1').fadeIn();
    $('#cur_image').val(1);
     });
}); 
   <input type="hidden" name="cur_image" id="cur_image" />
   <div id="loader">

  <div align="center" id="load" style="display:none"><img src="load.gif" /></div>

  </div>
 <input type="hidden" name="title" id="title" />

 (e.g. I want to store the title value from fetch.php to this hidden field)
**fetch.php**
                  <div class="info">

        <label class="title">
            <?php echo @$url_title[0]; ?>
        </label>
        <br clear="all" />
        <label class="url">
            <?php  echo substr($url ,0,35); ?>
        </label>
        <br clear="all" /><br clear="all" />
        <label class="desc">
            <?php  echo @$tags['description']; ?>
        </label>
        <br clear="all" /><br clear="all" />

        <label style="float:left"><img src="prev.png" id="prev" alt="" /><img src="next.png" id="next" alt="" /></label>

        <label class="totalimg">
            Total <?php echo $k?> images
        </label>
        <br clear="all" />

    </div>

1 个答案:

答案 0 :(得分:1)

在PHP中使用json_encode,在jQuery中使用$.parseJSON,如下所示:

$.post("fetch.php?url="+$('#url').val(), {}, function(response) {
    var result = $.parseJSON(response);
    if (result.success) {
       var title = result.data.title;
       ...
    }
});

在PHP中,您只需输出如下内容:

json_encode(
  array(
    'success' => true,
    'data' => array(
               'title' => 'yourTitle',
               'description' => 'yourDescription'
              )
  )
 );

另一个注释

请不要使用@。如果您不确定索引是否存在,请使用正确的验证,例如:

<?php if (is_array($url_title) && isset($url_title[0])): ?>
    <label class="title"><?php echo $url_title[0]; ?></label>
<?php endif; ?>

<label class="title"><?=is_array($url_title) && isset($url_title[0]) ? $url_title[0] : ''?></label>

修改

添加了额外的缩进并扩展了数据数组,使OP更清晰。