0

我试图在附近的某个地方找到答案,但我做不到,

所以我有一个 .bind() 事件,我想要什么时候触发从带有 JSON 的 php 文件中获取查询,就像 AJAX 一样。

我尝试了以下不起作用的方法:

$(document).ready(function() {  
$("#adivhere").bind("valuesChanged", function(){ 

                            // Some variables here 
var max2 = 10
var min2 = 5

                            //The classic AJAX Request
function afunc(max2,min2){
var xmlhttp;  
if (window.XMLHttpRequest)
{   // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();  
}else  {    // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}


                           //The classic AJAX onreadystatechange function
xmlhttp.onreadystatechange=function()
{ if (xmlhttp.readyState==4 && xmlhttp.status==200){    

                         //The code triggered
var fets = jQuery.parseJSON( xmlhttp.responseText );
var t = fets.date.split(/[-]/); 
var d = new Date(t[0], t[1], t[2]);
alert(d);   

}}  

                        //The XHR request with the .php file and the
                        // two values that sends
xmlhttp.open("GET","getdates.php?max2="+max2+"&min2="+min2,true);
xmlhttp.send();
};
});
4

2 回答 2

1

您的脚本中有几个“错误”:

  • "afunc" 永远不会被调用,那么为什么要执行它呢?
  • 括号没有正确关闭;最后有两个缺失:)}
于 2012-09-20T15:21:49.227 回答
1

看起来你正在使用 jQuery,所以这应该可以工作:

$(function(){
    $('#adivhere').bind('valuesChanged',function(){ 
        var max2 = 10;
        var min2 = 5;

        $.getJSON('getdates.php?callback=?', {max2: max2, min2: min2}, function(json){
            alert(json);

            var t = json.date.split(/[-]/);

            if (t && t.length) {
                var d = new Date(t[0], t[1], t[2]);
                alert(d);
            }
        });
    });
});

jQuery 中已经有一个很棒的 $.getJSON 方法,它将为您完成所有繁重的工作,包括以 JSON 形式返回您的结果。

您需要让您的getdates.php脚本回显callback并将结果包装在括号中,以便它作为实际的 jQuery 返回。

于 2012-09-20T15:22:39.520 回答