Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery ajax请求未传递POST变量_Php_Jquery_Ajax - Fatal编程技术网

Php jQuery ajax请求未传递POST变量

Php jQuery ajax请求未传递POST变量,php,jquery,ajax,Php,Jquery,Ajax,几个小时以来,我一直试图在点击按钮时调用php函数。正在打开ajax.php文件,该文件返回正常,但是没有传递post变量。以下是我的jQuery代码: $(function() { $("#button-id").click(function() { $.post('functions/ajax.php', { param1: "value1", param2: "value2" }, function(data) {

几个小时以来,我一直试图在点击按钮时调用php函数。正在打开ajax.php文件,该文件返回正常,但是没有传递post变量。以下是我的jQuery代码:

$(function() {
    $("#button-id").click(function() {
        $.post('functions/ajax.php',
          { param1: "value1", param2: "value2" },
          function(data) {
              alert(data);
          }
        );
    });
});
下面的php代码将显示一个空数组

<?php
    print_r($_POST);
?>


我一辈子都搞不明白为什么数据变量没有被传递到ajax.php文件。什么原因可能导致这种情况?

您应该这样做:

$.post("functions/ajax.php", {
    param1: "value1",
    param2: "value2"
}).done(function (data) {
    alert("Data Loaded: " + data);
});

(示例下)

这将对您有所帮助

$.ajax({
    type : "POST",
    url:"<?=Yii::app()->createUrl('site/Enquiryvalidation');?>",
    data:{"param1: "value1", param2: "value2"},
    success:function(data){
alert(data);
}
});
$.ajax({
类型:“POST”,
url:“”,
数据:{“param1:value1”,param2:value2},
成功:功能(数据){
警报(数据);
}
});

发现问题是由我的.htaccess文件引起的。因为我将所有.php文件请求重定向到它们各自的页面,而没有.php扩展名,所以每次打开文件时都会执行一个额外的get请求,导致所有以前的post变量丢失。

我的.h文件也导致了同样的问题t删除php文件扩展名。要解决此问题,只需在请求中删除php扩展名:

$.post('functions/ajax',
    { param1: "value1", param2: "value2" },
    function(data) {
        alert(data);
    }
);

您没有得到正确的控制台错误?我假设您在实际服务器上运行此操作?您的代码运行良好。@aug是的,我在本地服务器上运行此操作,没有收到任何控制台错误。您的代码返回:
Array([param1]=>value1[param2]=>value2)
您添加了jquery.js吗?您最后是如何修复的?