1

这是我想从 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>
4

1 回答 1

1

json_encode在 PHP 和$.parseJSONjQuery中使用,如下所示:

$.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 更清楚。

于 2012-07-14T15:39:51.060 回答