jquery将变量传递给php文件

时间:2012-01-19 20:28:50

标签: php jquery

实际上我对jquery不太熟悉..我得到了这个jquery脚本,这是将变量传递给以json格式显示数据的文件..但是这里我无法显示数据..plz看到这篇文章代码

$(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获取数据并显示在这里.. 抱歉英文不好

2 个答案:

答案 0 :(得分:5)

首先,

你不应该连接你的参数,而是使用一个hashmap:

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

由于您的方法是(类型:'GET'),只需在php文件中使用($ _GET [param]方法)

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

在js回调函数中,这是你记录整个响应的方式('something'是一个标记):

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>
});

答案 1 :(得分:2)

有点难以理解你的问题是什么,但我的猜测是你需要对json进行数据编码,然后再将它回显到search.php中。

简化示例......

例如

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

//Do whatever


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

然后您可以使用以下命令访问javascript中的结果:

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