我有一个使用ajax将数据提交到mysql数据库的表单,然后将表单发送到PayPal。
但是,提交后,如果我单击浏览器上的后退按钮,更改一些字段,然后再次提交表单,则不会更新mysql数据,也不会创建新条目。
这是我的Jquery:
$j(".submit").click(function() {
var hasError = false;
var order_id = $j('input[name="custom"]').val();
var order_amount = $j('input[name="amount"]').val();
var service_type = $j('input[name="item_name"]').val();
var order_to = $j('input[name="to"]').val();
var order_from = $j('input[name="from"]').val();
var order_message = $j('textarea#message').val();
if(hasError == false) {
var dataString = 'order_id='+ order_id + '&order_amount=' + order_amount + '&service_type=' + service_type + '&order_to=' + order_to + '&order_from=' + order_from + '&order_message=' + order_message;
$j.ajax({ type: "GET", cache: false, url: "/gc_process.php", data: dataString, success: function() { } });
} else {
return false;
}
});
这是我的PHP脚本的样子:
<?php
// Make a MySQL Connection
include('dbconnect.php');
// Get data
$order_id = $_GET['order_id'];
$amount = $_GET['order_amount'];
$type = $_GET['service_type'];
$to = $_GET['order_to'];
$from = $_GET['order_from'];
$message = $_GET['order_message'];
// Insert a row of information into the table
mysql_query("REPLACE INTO gift_certificates (order_id, order_type, amount, order_to, order_from, order_message) VALUES('$order_id', '$type', '$amount', '$to', '$from', '$message')");
mysql_close();
?>
有什么想法吗?
答案 0 :(得分:0)
你真的应该使用POST而不是GET,但无论如何,我会检查以下内容:
答案 1 :(得分:0)
Mate,
您是否已将jquery包含在
中$j(function(){
});
确保只在dom准备就绪时执行?
另外,我假设您已手动离开并将jquery从“$”重命名为“$ j”以防止命名空间冲突。如果不是这样的话,它应该是$(函数而不是$ j(函数
)除此之外,这里有一些代码提示:
步骤1:将所有“名称”字段重命名为您希望它们位于“dataString”对象中的名称。例如,将输入[name = from]更改为名称“order_from”
第2步: 使用此代码。 附加$ J(函数(){ $ j(“。submit”)。click(function(){ var hasError = false; if(hasError == false){ var dataString = $ j('form')。serialize();
$j.ajax({ type: "GET", cache: false, url: "/gc_process.php?uu="+Math.random(), data: dataString, success: function() { } });
} else {
return false;
}
});
}); 你会注意到我在url上打了一个随机变量“uu = random”,这通常是jquery的内置函数,但为了确保它没有缓存响应,你可以使用这个方法强制它。
祝你好运。如果这不起作用,请尝试脚本而不在新页面上重命名jquery。看看它是否有效,您可能会在页面上的其他脚本与之间发生一些冲突答案 2 :(得分:0)
原来问题是由于我使用的是iframe。我能够通过制作没有iframe的页面来解决问题。谢谢你的帮助!