0

以下のhtmlページがあります:

<!DOCTYPE html>
<html lang="en">
    <head>

        <title>HTML</title>

        <script src="http://code.jquery.com/jquery-latest.min.js"></script>

        <script>
            $(document).ready(function() {
                $("#b1").click(function(event) {
                    $.ajax({
                        type : "POST",
                        url : "index.php",
                        data : "valx=2",
                        contentType : "application/x-www-form-urlencoded",
                        dataType : "text",
                        complete : function() {
                            alert('post completed');
                        },
                        error : function() {
                            alert('error condition');
                        },
                        success : function(data) {
                            $('.result').html(data);
                            alert('data is returned');
                        },

                        statusCode : {
                            200 : function() {
                                alert("page was found");
                            }
                        }

                    });
                    event.preventDefault();
                });
            });
        </script>
    </head>

    <body>
        <div>
            <button id="b1">
                Click Me!
            </button>
        </div>
        <div class="result"></div>

    </body>
</html>

そして、私は次のphpページを持っています:

<?php
     $my_string =  $_REQUEST["valx"]; 
     $my_string = $my_string +9;
     echo $my_string;
?>

すべてがそのまま完全に機能しますが、投稿データをフォームに変更する方法を見つけようとしていました。

 data: '{ valx:"2"}'

そして、これはそれが壊れるところです。私は多くの形式のデータを試しました:'{valx: "2"}'、それでも運がありません。phpスクリプトがデータを正しく取得していないようです。contentType : "application/x-www-form-urlencoded",また、この形式を使用すると、同様に変更する必要があるように思われることに注意してください。

では、問題は、フォームのデータをどのように渡しdata: '{ valx:"2"}'て、11の応答を返すかということです。

ありがとう、ジム

4

2 に答える 2

3

var=value&var1=value1dataパラメータは、フォーム、またはキー/値を持つJavaScriptオブジェクトを受け入れます。あなたはそれにこれを与えました、それは文字列です...

data: '{ valx:"2"}`

...これを指定する必要がある場合、これは実際のJSオブジェクトです。

data: { valx:"2"}
于 2013-01-06T16:26:17.117 に答える
0

文字列ではなくオブジェクトを使用してください。jQueryは、オブジェクトをフォームエンコード形式に解析します。またcontentType、これは送信されるデータのタイプではなく、受信されたデータ用であり、text / htmlを受信するため、オプションを完全に削除してください。

 data : { valx:"2"},
于 2013-01-06T16:27:31.530 に答える