【发布时间】:2015-03-16 10:29:12
【问题描述】:
我需要通过 jQuery 代码中的 $_POST 方法调用带有参数的 php 页面 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");
?>
我之前在线程中做了类似的事情:'Upload a file and reloading a div instead reloading a page',但我的代码根本不起作用。
div activity的内容更新成功,显示'Success'字符串的弹窗,但是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)。在 page1.php 中,您只使用指定的参数。而且我认为 new FormData(this) 不起作用,因为在这种情况下,'this' 是一个图像,因为点击功能在一个带有 id:leftUp 的图像上——但我不确定
-
出现什么错误...您可以查看您的浏览器开发者控制台日志...
-
我从 page0.php 中取出该行,但没有任何反应。 : (
-
@simo-zz 为什么包含(“page0.php”);在第 1 页?
-
@simo-zz 你得到什么回应?