2012-01-19 184 views
1

其實我不是家喻戶曉的jquery ..我得到了這個jquery腳本,它將變量傳遞給以json格式顯示數據的文件..但是這裏我無法顯示數據..plz看到這段代碼jquery將變量傳遞給php文件

$(document).ready(function() { 
    var globalRequest = 0; 
    $('#search').bind('keyup', function(event) { 
     if (event.keyCode == 13) { 
      searchAction(); 
     } 
    }); 

    $('#search-link').bind('click', function(event) { 
     searchAction(); 
    }); 

    var searchAction = function() { 
     var value = $('#search').val(); 
     var cat = $('#category').val(); 
     var country = $('#country').val(); 
     var page = $('#page').val(); 

     var resultContainer = $('#results'); 

     if (value.length < 3 && globalRequest == 1) { 
      return; 
     } 

     _gaq.push(['_trackEvent', 'Search', 'Execute', 'Page Search', value]); 

     globalRequest = 1; 

     $.ajax({ 
       url: "search.php", 
       dataType: 'json', 
       type: 'GET', 
       data: "q="+value+"&category="+cat+"&country="+country+"&page="+page, 
       success: function(data){ 
       globalRequest = 0; 
       resultContainer.fadeOut('fast', function() { 
        resultContainer.html(''); 
        console.log(data.length); 

        for (var x in data) { 

         if (!data[x].price) 
          data[x].price = 'kA'; 

         if (!data[x].img) 
          data[x].img = 'assets/images/no.gif'; 

         var html = '<div class="res-container">'; 
         html += '<h2><a href="'+data[x].url+'" target="_blank">'+data[x].Title+'</a></h2>'; 
         html += '<img src="'+data[x].img+'">'; 
         html += '<h3>Price: '+data[x].price+'</h3>'; 
         html += '</div>'; 

         resultContainer.append(html); 
        } 

        resultContainer.fadeIn('fast'); 
       }); 

       } 
      }); 
    }; 
}); 

在search.php中的數據是簡單的回聲..如何從search.php中獲取數據並顯示在這裏.. 抱歉不好英語

回答

5

首先,

你不應該連接你的參數,而是使用散列表:

 $.ajax({ 
      url: "search.php", 
      dataType: 'json', 
      type: 'GET', 
      data: { 
      q : value, 
      category : cat, 
      country : country, 
      page : page } 

因爲你的方法是(類型: 'GET'),只是使用($ _ GET [參數]法)在PHP文件

<?php 
$value = htmlentities($_GET['q']); 
$category = htmlentities($_GET['category ']); 
$country = htmlentities($_GET['country ']); 

在JS回調函數,這是怎麼了您登錄全響應(「東西」是一個標籤):

success: function(data){ 
    var $xml = $(data); 
    console.log($xml); // show the whole response 
    console.log($xml.find('something')); // show a part of the response : <something>value</something> 
}); 
2

這是一個有點很難理解你的問題是什麼,但我的猜測是,你需要JSON在搜索呼應回之前的數據進行編碼.PHP。

簡化示例......

例如,

success: function(data){ 
    var obj = $.parseJSON(data); 
    alert(data.a); 
    $("#some_element").html(data.b); 
} 

<?php 
$somevar = $_GET['a'] 
$anothervar = $_GET['b'] 

//Do whatever 


$prepare = array('a'=>$result1,'b'=>$result2) //etc.. 
$json = json_encode($prepare); 
echo $json; 
exit(); 
?> 

然後,您可以用訪問的JavaScript結果