我正在编写一个脚本,该脚本将使用GET存储的一些数据发送到PHP脚本(然后处理它然后将其放入数据库)。
这是ajax脚本,即时通讯使用jQuery ajax (我已经包含了最新的jQuery脚本)
function send(){
$.ajax({
type: "GET",
url: "http://examplewebsite.com/vars/parse.php",
data: "id=" + id + "&purl=" + purl + "&send" + "true",
cache: false,
success: function(){
alert("Sent");
}
});
}
id
和purl
是JavaScript变量。
send()
功能设置在:
<a href="#" onclick="send()">Send</a>
PHP代码:
<?php
//Connect to database
include ("config.php");
//Get the values
$id = $_GET['id'];
$purl = $_GET['purl'];
$send = $_GET['send'];
if ($send == 'true') {
$insertdata = "INSERT INTO data (id,purl,send) VALUES ('$id','$purl',+1)";
mysql_query($insertdata) or die(mysql_error());
} else {
//do nothing
}
?>
当我输入 http://examplewebsite.com/vars/parse.php?id=123&purl=example&send=true 时
它工作,php按照我的意愿将数据注入数据库,但是当我使用send()
并想使用ajax发送数据时,失败了。
我是否有任何错误?
答案 0 :(得分:5)
发送后你错过了=,
function send(){
$.ajax({
type: "GET",
url: "http://examplewebsite.com/vars/parse.php",
data: "id=" + id + "&purl=" + purl + "&send=" + "true",
cache: false,
success: function(){
alert("Sent");
}
});
}
也应该修复它。发布有关您的JavaScript的更多信息。我们只需要假设id和purl已经填写完毕。您是否尝试过调试它们(如果这不起作用)。
此外,调试所请求的URL,您可以使用firefox或chrome dev-tools。什么URL被发送到PHP页面并且是正确的
答案 1 :(得分:2)
数据字符串中缺少“=”。
data: "id=" + id + "&purl=" + purl + "&send" + "true",
应该是
data: "id=" + id + "&purl=" + purl + "&send=" + "true",
答案 2 :(得分:0)
这取决于您运行脚本的位置,因为ajax调用不适用于其他域。如果您需要在http://example1.com上运行js并转到http://example2.com,则需要采用其他方法。
一个想法是使用json
答案 3 :(得分:0)
尝试
data: { id: id, purl: purl, send: true }
看看是否有任何区别
答案 4 :(得分:0)
首先,我建议(如果您使用Chrome或Safari)使用 Web Inspector (右键单击任意位置 - 检查元素),然后按ESC键显示到控制台,这将帮助您验证JS代码。那会告诉你你缺少'='。
其次,我会尝试更简单的事情,以确保你到达文件。
JS:
// Don't forget encoding the data before sending, this is just a simple example
$.get("parse.php?sent=true",
function(data){
alert("I think i got a nibble...");
alert(data);
}
);
在php文件中:
$sent = (isset($_GET['sent']) && !empty($_GET['sent']))?$sent:false;
if($sent) echo 'whatever data you want back';
确保您确实收到警报,如果是,请从那里开始根据您的数据构建PHP文件。
希望这有助于, 晒。