1

jQueryを介してdivの内容を投稿し、phpファイルにリダイレクトしてから、phpファイルにdivの内容をエコーし​​たいと思います。

html

<div id="edit_content">
<p>This is a test</p>    
</div>
<a href="processingscript.php" id="submit_script">Submit</a>

jquery

$('#submit_script').click(function(){
$.post('/processingscript.php', {'html': $('#edit_content').html()};
});

php

$content = $_POST['html'];
echo $content;

これまでのところ、phpファイルに空白のエコーが表示されます。$()。redirect()を使用する必要がありますか?

4

3 に答える 3

1

ええと..あなたがここで何をしようとしているのか完全にはわかりません。しかし、これは私が理解していることです-

別のPHPスクリプトでdivの内容にアクセスしたいとします。「リダイレクト」という単語を使用しますが、jQueryAJAXメソッドを使用します。最後に、AJAX呼び出しのコールバックを定義していないため、PHPからのエコーは表示されません。

このようなことを試してください-

var htmlData = $('#edit_content').html();
$.post('/processingscript.php', {'html': htmlData },function(response){
  // response now contains anything echoed from processingscript.php 
});

関数内に表示される無名関数$.post()は、前述のコールバックです。これは、AJAXリクエストが正常に完了するとすぐに呼び出される関数です。渡される引数( )は、スクリプトresponseの出力です。processingscript.php

したがって、すべてを組み合わせるために、jQueryはAJAXリクエストをPHPスクリプトに送信し、PHPスクリプトは$_POSTデータを自由に操作および使用できます。PHPがビジネスを終了すると、ステータスメッセージをエコーアウトできます。これはプレーンテキストでも、「Woo Hoo!Script done!」でも、JavaScriptに返したい情報(JSON応答)を含むオブジェクトでもかまいません。

于 2013-03-14T18:09:50.187 に答える
1

これはあなたが望んでいたことだったと思います。テスト済み、100%動作します

HTML:

<div id="edit_content">
    <p>This is a test paragraph</p><p> This is <u>another</u> <b>paragraph</b></p>    
</div>
<button id="submit_script">Submit</button>
<div style="border: 2px solid red; width: 200px; height: 100px;">
    <b>Result:</b>
    <div id="result"></div>
</div>

Javascript:

$(document).ready(function() {
    $("#submit_script").click(function() {
        var content = $('#edit_content').html();
            $.post("processing.php", { html: content})
            .done(function(data) {
            $('#result').empty().append(data)
            });
        });
});

これにより、返されたdivの内容が新しいdivに読み込まれます。

于 2013-03-14T19:34:59.687 に答える
0

追加する必要があります

return false;

jQueryクリックイベントハンドラーで、それ以外の場合はそのページに移動します。

$('#submit_script').click(function(){
    $.post('/processingscript.php', {'html': $('#edit_content').html()};
    return false;
});

また、AJAXリクエストを介して取得したページに表示される内容は、ブラウザーのJavaScriptコンソールでのみ確認できることを忘れないでください。挿入した「エコー」は、jQueryで応答を取得しない限り、ページに何も表示されませんが、スクリプトには意味がありません。

于 2013-03-14T18:04:37.257 に答える