2012-07-14 119 views
1

這是我的索引文件,我想從fetch.php中獲取值。 $('#loader').html($(response).fadeIn('slow'));這允許獲取所有的值並將其顯示在div = loader中。但我想要將單個返回值存儲爲javascript值。檢索Success函數中的多個值並將它們存儲到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

使用json_encode在PHP和$.parseJSON jQuery中,像這樣:

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

+0

好的,謝謝。在我的PHP文件中,我回顯了4個值,所以我應該使用json。例如json_encode('title'=>'我的標題'),json_encode('description'=>'my_description')。 – user1525721 2012-07-14 15:46:52

+0

不,只需將它們添加到傳遞給'json_encode'的數組中 - 所以'array('title'=>'your title','description'=>'your description');'。我更新了我的答案以反映這一點。 – Martin 2012-07-14 15:55:21

相關問題