2

AJAX について少し学習しようとしていますが、php スクリプトから出力を取得するのに苦労しています。

現時点で使用しているコードは次のとおりです。

<form>
        <input type="text" id="url" name="url" value="" onkeydown="if (event.keyCode == 13 || event.which == 13) {go($('#url').val());} "/><input type="submit" id="submit" name="submit" value="SHORTEN" onclick="go($('#url').val());"/>
        </form>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script src="js/jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
        function go(url){
            $.post('url.php', {url: url}, 
            function(data){
                $("#result").html(data).stop();
            });
            alert(url);
        };
    </script>

現在、url.php スクリプトは、テスト目的でランダムなテキストをエコーアウトしているだけです。

アラートだけで go() 関数を実行すると機能しますが、$.post() 関数に何か問題があるようです。これは、url.php からエコーされた文字列を取得できず、入力時にアラート ボックスが開かないためです。または送信ボタンをクリックします。

ありがとう

PS

テキストフィールドに何かを入力し、その下の領域に出力フォームurl.phpが入力されていないときに送信しようとしているものの例を次に示します-chrismepham.co.uk

編集 - Google Chrome を使用しています

4

3 に答える 3

2

JavaScript エラーがあります (具体的には、url: urlおそらく{url: url}「url=url」を意味します)。デバッグ中にエラーを確認できるように、コンソールを開いたままにしておく必要があります。

このようなエラーは、アラートが表示されない理由を説明するスクリプトの実行を停止する傾向もあります。

于 2012-10-09T13:48:37.743 に答える
1

唯一の目標が要素に結果を入力することである場合は、次の.load()方法を使用します。

$("#result").load("url.php", { "url": url } );

ドキュメントに書かれているように:

POSTメソッドは、データがオブジェクトとして提供される場合に使用されます。

.post()したがって、元のコードで使用するのとまったく同じ効果があります。

于 2012-10-09T13:52:40.450 に答える
0

私は、AJAX および Web2.0 アプリケーションで jQuery および PHP をかなり使用しています。PHP 内で構文エラーが発生している可能性が高いように思えます。構文エラーがあると、サーバー側のスクリプトが強制終了され、応答が返されなくなります。「hello world」などのエコー ステートメントを除いて、PHP スクリプトからすべてを削除してから、firebug のコンソールを使用して POST からの応答を表示します。まだ読んでいない場合は、XML について読むことをお勧めします。AJAX で POST を使い始めると、XML などの標準化された形式のデータ通信に切り替えるのが難しくなります (PHP で OOP を使用すると、データの解析が非常に簡単になります)。

于 2012-10-09T13:59:28.560 に答える