如何使用jquery和AJAX发送和接收变量?

时间:2011-05-19 20:25:10

标签: php jquery ajax get

所以我们可以说这是我的代码的jquery部分:

$.ajaxSetup ({
    cache: false
});

load() functions
var loadUrl = "load.php";
$("#load_basic").click(function(){
    $("#result").load(loadUrl +  "?language=php&version=5");
});

});    

这是“load.php”

<?php $_GET['language'] .= "cool";  $_GET['version']+=2; ?>

如何将已处理的语言和版本变量返回给我的#result div?

对不起,如果我这样做错了。在php和jquery中非常舒服,但是ajax让我感到困惑,而且我还没有发现任何真正点击过的教程。

我知道我可以回应这些变量,这会将load.php的内容返回到我的div中......但这看起来很笨重,我怀疑这是人们实际做的方式..

3 个答案:

答案 0 :(得分:1)

$.ajax({
  url:YOUR_URL,
  dataType:'json',
  type:'POST',
  data:'&var1=value1&var2=value2',
  beforeSend:function(){
      //
  },
  success:function(response){
      //complete
      $('#container').html(response.result + ' ' + response.other);
  }
});

在你的php中

$var1 = $_POST['var1'];
//your proccess
$result = array(
   'result' => 'ok',
   'other' => 'value'
);
echo json_encode($result);

答案 1 :(得分:1)

JQuery的

$("#load_basic").click(function(){
    $.get(loadUrl +  "?language=php&version=5", function(data){
           var obj = eval(data)
           $("#result").html(obj.language + " " + obj.version)      
    });
});

PHP

<?php $_GET['language'] .= "cool";  $_GET['version']+=2; 
echo "{\"language\" : \"".$_GET['language']."\",\"version\" : \"".$_GET['version']."\"" ?>

没有经过测试而且没有防弹,但概念就在这里。返回你可以回读的PHP中的东西(我选择JSON)

答案 2 :(得分:1)

“如果我在php中回应两个或三个vars,我希望它们能够分离并回应到不同的div ..”

我是ASP而不是PHP,但我认为原理是一样的。

我有这是我的请求页面:


    <script type="text/javascript">
     $(document).ready(function(){  
$("#list").change(onSelectChange);  
});

    function onSelectChange(){  
var selected = $("#list option:selected").val();
var bob = $("#list option:selected").text();

if (selected.length > 0) {
    $.post("twopart.asp", { thing: selected, bob: bob }, function(data) {
        var dataraw= data;
        var dataarray = (dataraw).split("~~~");
        var outone= dataarray["0"];
        var outtwo= dataarray["1"];
        var outthree= dataarray["2"];
        $("#output1").html(outone);
        $("#output2").html(outtwo);
        $("#output3").html(outthree);
    });
}
}
</script>

这是在我的处理页面中:


response.write bunch of stuff and ~~~
response.write bunch of stuff and ~~~
response.write more stuff

很抱歉,格式化仍在学习如何操作。

无论如何,“回声页面”回应了它的内容,其中三个波浪被卡在那里。然后我解析了波浪线上的返回并写下不同的地方。

希望这有用。

Grooveek的JSON答案可能更好。