我需要通过 $_POST 方法从 jQuery 代码调用一个 php page page1.php 参数,而不重新加载我调用的页面,我们称之为 page0.php ..
这就是我在 page0 中编写的代码.php
<img id="leftUp" src="/imagenes/cursor_1.png" width="52" height="52" ondragstart='return false;'/>
<div id="activity"style="text-align:left;position:relative;left:120px;">
<h3 style="color: yellow;"></h3>
</div>
<script>
var $level = 1;
$("#leftUp").click(function()
{
var $hOffset = -5;
var $vOffset = -5;
$hOffset *= $level;
$vOffset *= $level;
$("#activity").text("Values h: " + $hOffset + " - v: " + $vOffset);
event.preventDefault();
$.ajax(
{
url: "page1.php",
method: 'POST',
data: new FormData(this),
params:
{
interrupt: '14',
hOffset: $hOffset,
vOffset: $vOffset
},
contentType: false,
cache: false,
processData: false,
success: function(data)
{
alert('Success');
},
failure:function(transport)
{
alert('Error');
}
});
});
});
</script>
而 page1.php 的代码基本上是这样的:
<?php
if(isset($_POST["interrupt"]))
{
$interrupt = urlencode($_POST["interrupt"]);
/*
write the interrupt number into the interrupt
reference file
*/
exec("echo '$interrupt' > $intFile");
}
if(isset($_POST["hOffset"]))
{
$hOffset = urlencode($_POST["hOffset"]);
}
if(isset($_POST["vOffset"]))
{
$vOffset = urlencode($_POST["vOffset"]);
}
/* other stuff here ... */
include("page0.php");
?>
我之前在线程中做了类似的事情:"上传文件并重新加载div 而不是重新加载页面",但我的代码根本不起作用。
div 活动的内容更新成功,并显示"成功"字符串的弹出窗口,但 PHP 代码似乎没有执行。
问题应该出在 $.ajax 块内的 jQuery 代码中,但我不是一个有经验的 Web 程序员,所以我真的不知道如何解决这个问题。
任何建议都非常感谢。提前谢谢你。
编辑:我修改了ajax,如下所示:
$.ajax(
{
url: "page1.php",
type: 'GET',
data:
{
interrupt: "14",
hOffset: $hOffset,
vOffset: $vOffset
},
contentType: false,
cache: false,
processData: false,
success: function(data)
{
alert('Success');
},
failure:function(transport)
{
alert('Error');
}
});
但仍然没有任何反应。
你不需要
data:new FormData(this)
试试这个
$.ajax(
{
url: "page1.php",
method: 'POST',
data: 'interrupt=14&hOffset='+hOffset+'&vOffset='+vOffset,
success:function(response){
//do something
},
failure:function(transport)
{
//do something
}
});