Jquery中post方法传值,php内无法接收到,请求各位帮助,多谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jquery中post方法传值,php内无法接收到,请求各位帮助,多谢相关的知识,希望对你有一定的参考价值。

ajax不是你这么用的,jQuery的post方法你都没有写返回函数,你怎么知道你的值传过去了?js没错,但php有错,任何非变量都需要加引号!
js不变,$.post(url,data:value,function(data)

alert(data)

)
记得php的输出字符加上引号
参考技术A 你载入的jquery链接有问题应该是:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>追问

还是不对。。。

追答

你的 代码真是错误百出啊。。。。。
click()和ready函数结尾都要有“;”号的啊,
你可以先不用post,先随便测试一个jquery语句,看看你有没有语法错误。。。。。

追问

额。。。。实在不好意思,新手。我在没有加;的情况下用location的方法可以运行,就像下边一样,能传值给php

但是post和get就不行

追答

那你的post页面地址是对的吗?googleChart.php?再有你alert(m),看看m是否取到值了

追问

地址检查过了,没错。m也用alert检查过了,里面有值,就是在传递的这过不去

追答

你把代码给我吧,不要图片,我测试下

追问

您有邮箱吗,这个上边发不上去

追答

算了 你等我会 我测试下,稍微写行就好了

参考技术B 1、确认下ajax执行是否成功,用firebug可以很方便的观察。
2、确认下php页面有没有错误
echo kong; // 这里的kong是常量?
echo bukong; // 这里的bukong是常量?追问

kong和bukong都是我为了测试到底有没有接收到值的,这里没问题
我感觉是post传值的时候出错了,但是我不知道错误在哪里,你能帮我找一下吗,我就是想把一个值从javascript里传到php里,多谢了

追答

kong 和 bukong,是变量,还是字符串,还是常量?确认你是否正确了使用。
代码都正确的情况下,再去找原因,要不然不知道什么部分出错了。

所以我就有个疑问,$.post("googleChart.php", number:m); // 这句你是怎么判断它没有传值呢?

以下的调试方法,可以看下:
使用谷歌浏览器自带的开发者工具或者是火狐浏览器的firebug插件来进行调试
1、先看下你的JS代码是否有错误。
2、在代码无误的情况下,可以进行调试了。
2.1、谷歌开发者工具->Network
你点击按钮会发送一个请求,监视窗口会记录这次请求和响应的情况,从中你可以看到服务器响应了什么。
2.2、火狐Firebug插件->Net
测试方法同上。

本回答被提问者采纳

使用 jQuery ajax post 接收 PHP 参数

【中文标题】使用 jQuery ajax post 接收 PHP 参数【英文标题】:Receive PHP parameters with jQuery ajax post 【发布时间】:2012-08-02 22:09:02 【问题描述】:

我通过 jQuery 的 .ajax 方法将数据发送到我的 PHP 文件。两个文件都在同一个域中。发帖的文件是这样的..

$('#pdf').click(function()                     
    var proj_name = $('#proj_name').text();
    var date = $('#date').text();
    var req_comp_date = $('#req_comp_date').text();
    var status = $('#status').text();
    var secondUserID = $('#secondUserID').text();

    var postData = 
        "proj_name" : proj_name,
        "date" : date,
        "req_comp_date" : req_comp_date,
        "status" : status,
        "secondUserID" : secondUserID,
    ;

    console.log(postData);

    $.ajax(
        type: "POST",
        url: "test.php",
        data: postData, 
        success: function()
            alert(proj_name + ' ' + status);
            window.open("test.php"); 
        
    );
);

获取post数据的PHP文件是……

//request parameters
$proj_name = $_POST['proj_name'];
$date = $_POST['date'];
$req_comp_date = $_POST['req_comp_date'];
$status = $_POST['status'];
$secondUserId = $_POST['secondUserId'];

echo 'postData: ' . var_dump($_POST);

if ($_POST))
    echo $proj_name;
    echo $date;
    echo $req_comp_date;
    echo $status;
    echo $secondUserId;
 else 
    echo 'problem';

在我的 firebug 控制台中,我可以看到使用 .ajax 发布的参数,但我无法通过 PHP 获取该帖子。谁能帮帮我?谢谢。

【问题讨论】:

所以假设你的 $.post() 中的 url 是正确的,做 var_dump( $_POST );在您的 php 文件的顶部。你得到了什么?如果那里没有任何内容,请验证您发送到正确的网址。 【参考方案1】:

如果请求失败,请将错误回调添加到您的 $.ajax 调用以进行调试。

$.ajax(
    type: "POST",
    url: "test.php",
    data: postData, 
    success: function()
        alert(proj_name + ' ' + status);
        window.open("test.php"); 
    ,
    // Alert status code and error if fail
    error: function (xhr, ajaxOptions, thrownError)
        alert(xhr.status);
        alert(thrownError);
    
);


更新

改变这个:

if ($_POST))
    echo $proj_name;
    echo $date;
    echo $req_comp_date;
    echo $status;
    echo $secondUserId;
 else 
    echo 'problem';

到这里:

if ($_POST))
    // Make a array with the values
    $vals = array(
        'proj_name'     => $proj_name,
        'date'          => $date,
        'req_comp_date' => $req_comp_date,
        'status'        => $status,      
        'secondUserId'  => $secondUserid
    );

    // Now we want to JSON encode these values to send them to $.ajax success.
    echo json_encode($vals);

    exit; // to make sure you arn't getting nothing else

 else 
    // so you can access the error message in jQuery
    echo json_encode(array('errror' => TRUE, 'message' => 'a problem occured'));
    exit;

现在在你的 jQuery .success 回调中:

success: function(data) // Our returned data from PHP is stored in "data" as a JSON Object
    alert(data.req_comp_date); // access your returned vars like this.
    // data.date; // is your posted date.. etc
    alert(data.proj_name + ' ' + data.status);
    window.open("test.php"); 

    // You can also get your error message like so..
    if(data.error) // if its true, we have a error, so display it.
         alert('ERROR: ' + data.message); 

,

您实际上不必再执行此操作(jquery 可以很好地确定返回的数据类型),但很高兴在代码中包含它以了解返回的内容。

$.ajax( ...
    type: "POST",
    url: "test.php",
    data: postData, 
    dataType: "json" // <-- Add this to tell jquery, we are being returned a JSON object.
.... );

【讨论】:

感谢您的帮助。我没有得到错误捕捉工作。我确实看到了我对 PHP 文件的萤火虫响应。数组([proj_name] => 项目名称:8.3 PRDx 未保存草稿 [date] => 日期:2012-08-03 [req_comp_date] => 请求完成日期:n/a [status] => 状态:等待 [secondUserID] => 分配另一个用户来编辑这个项目请求文档? Nilo Zaratan )所以,我只需要以某种方式将它输出到页面。它没有正确回显。

以上是关于Jquery中post方法传值,php内无法接收到,请求各位帮助,多谢的主要内容,如果未能解决你的问题,请参考以下文章

miniui后台无法接收到input传值

angular的post传参后台php无法接收

使用 jQuery ajax post 接收 PHP 参数

jquery $.post() 向php传值 实现简单的二级联动

在jQuery ajax中按钮button和submit的区别分析

无法接收 Vue 通过 axios 发送到 PHP 的 Post 数据