2012-10-28 97 views
0

我想使用AJAX调用PHP脚本。我在我的deleteitem.php脚本中添加了一个简单的echo警报来检查它是否被调用,但无论我做什么,它都不会被调用。 PHP脚本与调用它的js脚本位于同一文件夹中ajax调用PHP脚本不工作

有人能告诉我为什么会这样吗?可能的原因是什么?

$.ajax({ 
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID, 
     type: "POST", 
     dataType: "html", 
     success: function(data) 
     { 
      //do something here 
     } 
}); 
+3

直接加载的URL在浏览器中第一次 – mplungjan

+0

你做了什么错误? – GBD

+1

没有得到请求..在URL中传递参数? – Amitd

回答

1

正如Amitd说,你不应该结合GETPOST请求。代码应该是这样的:

$.ajax({ 
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID, 
     type: "GET", 
     dataType: "html", 
     success: function(data) 
     { 
      alert(data); // alert on success 
     } 
}); 

如果你还没有得到任何回应,有可能是一个服务器错误,所以你应该把线像这样一个在.PHP脚本,在脚本的beggining :

error_log("script was called, processing request..."); 
error_log("passed artworkObjectId is: " . $_GET["artworkObjectID"]); 

然后,您可以查看在您的.log文件(可在,如果它的Apache服务器上运行的Apache日志文件/文件夹中),如果有任何消息。

+0

谢谢@ mike-johnson。这有助于我开始排除故障。 – vedran

+0

最受欢迎:-) –

+0

我有一个后续问题(我是noob btw)我可以使用我的PHP脚本中的echo语句打印$ _GET [“artworkObjectID”]中的值吗?它不缝合工作? – vedran

2

你怎么知道它是否在调用它?将javascript警报声明添加到callback。 E.g

alert(data); 

它会告诉你从PHPscript呼应的东西,如果你有一切权利。

1

PHP脚本的输出将被放置在data(假设请求成功)。

除非你用一些代码去替代注释//do something here,否则它不会执行任何操作。

0

尝试像..传递数据,如低于

$.ajax({ 
        url: "deleteitem.php", 
        type: "POST", 
        data: { 
          'task': 'deleteArtwork', 
          'id': artworkObjectID 
        },    
        success: function (msg) { 

        } 
       }); 
1

我会做的第一件事就是检查成功回调的结果。

$.ajax({ 
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID, 
     type: "POST", 
     dataType: "html", 
     success: function(data) 
     { 
      alert(data); // Alert the results 
     } 
}); 

大部分的时间(与自己反正)时,我注意到的东西不被阿贾克斯更新通常是我的IM通话功能的PHP错误。这种方法将提醒任何错误,PHP在该页面上抛出:)

此外,请尝试并检查您的浏览器控制台,看看是否有任何错误从您的JavaScript。

+0

谢谢@ brendan-scarvell - 这帮助我开始排除故障 – vedran

0

首先,你不输出回传数据,存储在(你的情况)data 此外,你解析沿着一些GET变量,虽然你的AJAX请求是POST。 如果你有超过AJAX变量的工作,我建议使用GET:

$.get('deleteitem.php?task=deleteArtwork&id='+artworkObjectID, function (data) { 
    //On success, perhaps print the returned data: 
    alert(data); 
}) 
1

要检查是否调用服务器代码,可以在Firebug中检查传递的参数和AJAX响应。我想这会很方便。

-1
url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID 

应该

url: 'deleteitem.php?task=deleteArtwork&id='.artworkObjectID,