将POST变量从jQuery传递给PHP,想要更新div

时间:2014-01-19 15:31:46

标签: javascript php jquery ajax

我正在尝试将表单值“New Value”从jQuery传递到PHP脚本,然后将“to_change”div从“Old value”更新为“New value”。似乎AJAX调用成功,但POST变量没有发送到PHP脚本,当我使用getJSON时,我没有成功。我怎么能解决这个问题?

Javascript / HTML code:

<html>
    <head>
        <script src = 'jquery-1.10.2.js'></script>
        <script>
            $(document).ready(function() {
                $("#form_tmin").submit(function(event) {
                    var values = $(this).serialize();
                    $.ajax({
                        type: "POST",
                        url: "parameters_form2.php",
                        data: values,
                        dataType: "json",
                        success: function(data){
                                     $.getJSON("parameters_form2.php", function(tmin) {
                                         document.getElementById("to_change").innerHTML = tmin[1];
                                     });
                                 }
                    });
                        return false;
                });         
            });
        </script>
        </head>
        <body>
            <div id="to_change">Old value</div>
            <form id="form_tmin" name="form_tmin">
                <input type="hidden" id="tmin_value" name="tmin_value" value="New value">
                <input type="submit" name="submit" value="submit">
            </form>
        </body>
</html>

PHP代码:

<?php
header('Content-Type: application/json');
if ($_POST["tmin_value"]) {
    $tmin[1] = $_REQUEST["tmin_value"];
}
else {
    $tmin[1] = "FAILURE";
}
echo json_encode($tmin);
?>

2 个答案:

答案 0 :(得分:0)

您已经在数据中拥有json响应,只需将此数据设置在您想要显示的位置即可。你再也不需要$.getJSON了。

尝试这样:

            $(document).ready(function() {
                $("#form_tmin").submit(function(event) {
                    var values = $(this).serialize();
                    $.ajax({
                        type: "POST",
                        url: "parameters_form2.php",
                        data: values,
                        dataType: "json",
                        success: function(data){

                             document.getElementById("to_change").innerHTML = data[1];

                           }
                    });
                        return false;
                });         
            });

答案 1 :(得分:0)

您已经有了查询响应,无需再次使用$.getJson

而只是使用:

success: function(data){
    $("to_change").html(data[1]);
}