【问题标题】:AJAX Function jQuery to PHP Access Response VariablesAJAX 函数 jQuery 到 PHP 访问响应变量
【发布时间】:2013-10-28 10:02:31
【问题描述】:

我正在尝试将 AJAX 函数从 jQuery 发送到 PHP。我可以将它转到正确的页面,但是当我到达那里时,如何从 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:

&lt;?php ?&gt;(在得到这个变量之前我什么都做不了。)

我应该调用什么变量来从 AJAX 获取数据,以及我需要调用什么函数(如果有)才能做到这一点?

【问题讨论】:

    标签: php jquery ajax json


    【解决方案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;  
        }
    });
    

    【讨论】:

    • 你说得对,我不应该去堵塞全局命名空间。我真的不会用它做任何其他事情,但你仍然是对的。另外,我在编写它时将它作为变量,但我正在测试东西,当我将它复制到问题中时它是一个字符串。会改回来的。
    • 链接的问题谈到了如何在 JavaScript 页面上返回数据,但我要问的是如何在 PHP 页面上返回数据。
    • 哦,对不起。你的意思是你在问如何将数据从 javascript 发送到 PHP?
    • 不,我已经发送了。如果您注意到,URL 会转到 PHP 页面,而不是 JavaScript 页面。我在问我到那里后如何获取数据变量。
    • 在您的代码中,您将数据发布到 url 并在成功完成后跳转到相同的 url。你能详细说明一下吗?为什么需要这个。
    【解决方案2】:
    $.ajax({
        url: "url",
        data: assessrows,
        type: "POST",
        success: function(data) {
            console.log(data); //do something with data
            window.location.href = url;
        },
    });
    

    【讨论】:

    • 我应该在成功函数中的数据进入 PHP 页面之前对其进行处理吗?这会帮助我从那里访问它吗?
    • 我不知道你想这样做,但看起来@naoki 已经涵盖了它。
    • 抱歉,我对 AJAX 还是很陌生,所以我真的不知道你能用它做什么和不能做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    相关资源
    最近更新 更多