AJAX函数jQuery到PHP访问响应变量

时间:2013-10-28 00:40:52

标签: php jquery ajax json

我正在尝试从jQuery向PHP发送AJAX函数。我可以很好地将它带到正确的页面,但是当我到达那里时,如何从AJAX调用中访问数据?这可能是我想念的傻事。

jQuery的:

$(document).ready(function() {

    $("#assessform_page").on("submit", "#assessform", function(e) {
        e.preventDefault();
        var assessrows = {};
        var url = $(this).attr("action");

        $("div[data-test-num]").attr("data-test-num", function(index, value) {
            assessrows[value] = {};
            $(this).children("input[data-tab-row], select[data-tab-row]").attr("data-tab-row", function(i, v) {
                assessrows[value][v] = $(this).val();
            });
            $(this).children("label[data-tab-row]").attr("data-tab-row", function(i, v) {
                assessrows[value][v] = $(this).text();
            });
        });

        $.ajax({
            url: url,
            data: assessrows,
            type: "POST",
            success: function() {
                window.location.href = url;
            },
        });

    });

});

HTML:

<form id="assessform" action="assessment.php" method="post" enctype="application/x-www-form-urlencoded" name="assessform">
    <div data-test-num="1">
        <label data-tab-row="objname">First Value: </label>
        <select autofocus="autofocus" data-tab-row="status">
            <option value="not_started">Not started</option>
            <option value="in progress">In Progress</option>
            <option value="obstacles">Obstacles</option>
            <option value="excluded">Excluded</option>
            <option value="done">Done</option>
        </select>
        <input type="text" data-tab-row="numer" value="" />
        <input type="text" data-tab-row="denom" value="" />
        <br />
        <br />
    </div>
    <button type="submit" name="submit-button" id="submit-button">Submit</button><br />
    <button type="button">Save</button><br />
</form>

PHP:

<?php ?>(在得到这个变量之前,我什么都做不了。)

我可以调用什么变量来从AJAX中获取数据,以及在我可以执行此操作之前需要调用哪些函数(如果有)?

2 个答案:

答案 0 :(得分:1)

$.ajax({
    url: "url",
    data: assessrows,
    type: "POST",
    success: function(data) {
        console.log(data); //do something with data
        window.location.href = url;
    },
});

答案 1 :(得分:1)

修改

如果您的assessment.php做出如下回复:

  <?php
       echo 'successfully_completed';
  ?>

PHP的响应数据将按如下方式传递:

$.ajax({
    url: url, // assessment.php
    data: assessrows,
    type: "POST",
    success: function(data) {
        alert("The response is [" + data + "]"); 
        // "The response is [successfully_completed]"

        // If you want to pass this data to the next page
        window.location.href = "/foo/success.php?data="+data;  
    }
});