使用AJAX只向PHP发送$_POST变量,不需要HTML响应



我试图使用AJAX调用仅将$_POST的变量(来自$_POST数组的变量)发送到PHP文件中。我不想说成功:alert('ok, it's fine')$('blah').text('done it!')。我想将变量发布到PHP文件的$_POST表中,仅此而已。好的,让我们看看下面的文件:

ajax.php

echo '<script type="text/javascript" src="http://'.$_SERVER["HTTP_HOST"].'/media/system/js/jquery_check.js"></script>';
echo '<script type="text/javascript" src="http://'.$_SERVER["HTTP_HOST"].'/ajax.js"></script>';


ajax.js

jQuery(document).ready(function () {
jQuery.ajax({
url: "ajax.php",
type: "POST",
data: { id:12345,whatever:'blahblah' },
success: function (data) {
alert(data);
}
});
});

因此,当我用这个例子运行ajax.php时,我会得到警报信息:

<script type="text/javascript" src="http://localhost.dev/media/system/js/jquery_check.js"></script><script type="text/javascript" src="http://localhost.dev/ajax.js"></script>

如果我在成功函数中放入例如jQuery('#photoid').text(data);,并在PHP文件中添加<div id="photoid"></div>,另外添加var_dump($_POST),我将在屏幕上获得此HTML响应(以及作为警报信息):

<script type="text/javascript" src="http://localhost.dev/media/system/js/jquery_check.js"></script><script type="text/javascript" src="http://localhost.dev/ajax.js"></script>array(2) { ["id"]=> string(5) "12345" ["whatever"]=> string(8) "blahblah" } <div id="photoid"></div>

我想做的是一个调用,它将使我的PHP文件只发送后数据(idwhatever)并写入PHP文件中的$_POST超全局数组。所以我不需要这些脚本之类的东西,因为在我真正的PHP脚本中,我不需要在网站上显示任何HTML数据,只需要PHP文件接收POST数据。这可能吗?

无论如何,div代码对我来说是不必要的,但正如我所看到的,它必须存在,才能读取任何POST数据。POST数据也被写入array(1)array(2),而不是标准的$_POST阵列,因此我只能通过使用foreach循环读取数据($_POST['id']显示错误,没有可用的此类索引)。

如果XAMPP很重要,我会在本地使用它。但这在当地也应该起作用。

有什么想法吗?

删除

success: function (data) {
alert(data);
}

部分。用于文档检查Jquery文档

使用专门用于此目的的$.getScript()。由于您想要激发POST请求,因此可以通过这种方式使用$.ajax()

jQuery(document).ready(function () {
jQuery.ajax({
url: 'ajax.php',
dataType: "script",
});
});

最新更新