>我在使用 jquery ajax 调用提交数据时遇到问题
我正在使用的以下jquery ajax调用函数
$(".update-pages").bind('submit',function(){
var urlReq = "perform/update_pages.php?sbmt_change=&" +$(this).serialize();
$.ajax({
method : 'GET',
url : urlReq,
success : function(data){
alert(data);
}
});
return false;
});
HTML 表单为:
<form action="perform/update_pages.php" class="update-pages" method="GET">
<input type="hidden" value="about" id="getLoc" name="about" />
<textarea name="txt" rows="20">
</textarea>
<br />
<input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />
</form>
PHP 文件是(执行/update_pages.php):
if (isset($_GET['sbmt_change'])) {
$contents = urlencode($_GET['txt']);
$data = file_get_contents("http://localhost/web/about.php?contents=$contents");
$put = file_put_contents("../../../mysite/about.php", $data);
if ($put) {
echo 'updated';
exit();
}else{
echo 'unable to update pages';
exit();
}
}else{ // if not form submitted
header("location:../");
exit();
}
问题:当我提交数据时,serialize()
发送textarea
更改之前的旧结果,但是当我再次提交时serialize()
发送新结果,并且同样的麻烦一次又一次地开始。 偶数时间提交发送新数据,奇数时间提交发送旧数据。
我该如何解决这个问题?
这是我刚刚在我的系统中测试的代码,它工作正常。我在每次提交时都会获得适当的数据。
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".update-pages").bind('submit',function(){
var urlReq = "server.php?sbmt_change=&" +$(this).serialize();
$.ajax({
method : 'GET',
url : urlReq,
success : function(data){
alert(data);
}
});
return false;
});
})
</script>
</head>
<body>
<form action="server.php" class="update-pages" method="GET">
<input type="hidden" value="about" id="getLoc" name="about" />
<textarea name="txt" rows="20">
</textarea>
<br />
<input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />
</form>
</body>
</html>
服务器端代码:
<?php
if (isset($_GET['sbmt_change'])) {
print_r($_GET);
}else{ // if not form submitted
}
?>
嗨,
下面是您的代码中的一些更改,请使用下面修改后的代码
<form action="" class="update-pages" method="GET">
<input type="hidden" value="about" id="getLoc" name="about" />
<textarea name="txt" rows="20">
</textarea>
<br />
<input type="submit" class="btn btn-primary btn-lg" value="UPDATE" name="sbmt_change" />
<script>
$(".update-pages").bind('submit', function () {
$.ajax({
method: 'POST', //also use GET
url: 'http://localhost:82/stack/get.php', //HERE IS FULL SITE URL OF YOUR FILE
data: $('.update-pages').serialize(),
success: function (data) {
alert(data);
}
});
return false;
});
</script>
得.php
<?php
echo "<pre>";
print_r($_REQUEST);
?>