无法在php端获得Jquery值

时间:2014-10-29 10:43:57

标签: javascript php jquery ajax

我有一个数组,它填充了javascript代码。当点击确认按钮时,我需要在php端达到这个数组的值。所以,我使用ajax post方法如下。它运行成功,我知道因为所有警报都成功运行。这是我的代码的一部分。

$('#firstConfirmButton').click(function(){  

    var my_json_val = JSON.stringify(ordersArray, null);
    alert(my_json_val.toString());

    $.ajax({
        type: "POST",
        url: "test.php",
        data: my_json_val,
        cache: false,
        contentType: false,
        async: false,
        processData: false,
        success:  function(response){
            //alert("---"+data);
        alert("Settings has been updated successfully.");
        alert(my_json_val);
        alert(response);

        window.location.reload(true);
        }
    }); 


});

另一方面,我有一个test.php页面,它还包含使用上面的js代码的“确认”按钮。单击此按钮时,我想要回显我使用ajax发布的数组的值。但我不能在php方面获得价值。这是我的PHP代码;

<?php


    require("includes/db.php");
    require("includes/functions.php");

    session_start();       

    if (isset($_POST['firstConfirmButton'])) {

        echo 'I am here'; //I can see only this row on php page

        $my_json_encoded = $_POST['data'];
        $my_json_val = json_decode($my_json_encoded);
        echo $my_json_val;  //nothing happens          

    }

这是我确认按钮的html代码;

<form role="form" method="post" action="starbucks.php">
                    <div id="firstConfirmButton">
                        <button type="submit" name="firstConfirmButton"   id="firstConfirmButton" class="btn btn-primary btn-lg">Onayla</button>
                    </div>

那我的错在哪里,请帮忙!

2 个答案:

答案 0 :(得分:0)

不要将数组转换为Json,ajax帖子会自行投射,所以将my_json_val替换为ordersArray

答案 1 :(得分:0)

你真的想重定向到你的php文件,还是只需要来自它的数据?因为action =&#34; file.php&#34;重定向到此文件。如果您只需要数据,请尝试使用jquerys .submit方法并执行ajax调用,否则使用它来重新设置您的action属性(为简单起见,如果您的网站上有多个表单,我会在表单上使用id):

$('#yourform').submit(function(){
   var my_json_val = JSON.stringify(ordersArray, null);
   var elem = {
       firstConfirmButton: true, 
       data: my_json_val
   }
   $.ajax({
        type: "POST",
        url: "test.php",
        data: elem,
        cache: false,
        contentType: false,
        async: false,
        processData: false,
        success:  function(response){
            //alert("---"+data);
            alert("Settings has been updated successfully.");
            alert(my_json_val);
            alert(response);
        }
    }); 
    return false;
});

如果您确实想要重定向,请尝试使用:

$('#yourform').submit(function(ev){
    var my_json_val = JSON.stringify(ordersArray, null);
    $(this).attr('action', ev.target.action+'?data="'+my_json_val+'"');
});