4

単純に私の問題は、同じページのphpスクリプトとして空のアクションでdivにフォームを送信したいということです。私のページが長すぎるため、説明する簡単な例です

<html>
<head>
<script>
$(document).ready(function() {
 $("#myDiv").delegate("form", "submit", function(event) {
       $.ajax({ 
            data: $(this).serialize(), 
            type: $(this).attr('method'), 
            url: $(this).attr('action'), 
            success: function(response) { 
                $("#myDiv").slideUp(500, function() {
                    $("#myDiv").html(response);
                    $("#myDiv").slideDown(500);
                });
            }
        });
        return false;    
    });
 });
</script>
<head>
<form method="post" action="">
<p> enter your name</p> <input type="text" name="name" />
<input type="submit" name="save" />
</form>
<?php
if (isset($_POST['save'])) {
echo $_POST['name'];
}
?>
</html>

フォームのアクションが空で、送信ボタンをクリックしても何も起こらないという問題なので、誰でも問題を解決する方法を知っていますか? PS: extrnak ファイルで php スクリプトを抽出するのは難しすぎます。別の解決策を探しています。

4

4 に答える 4

1

動作させるには、ターゲットにするセレクター.delegateをラップする必要があります。これは、ターゲティングが次と同等であるためです。#myDiv

$('#myDiv').find('form').on('submit', ...

つまり、あなたは のform中にラップする必要があります#myDiv

于 2012-06-17T12:08:55.547 に答える
1

このように試しましたか?

<?php
if (isset($_POST)) {
    echo $_POST['name'];
}
?>
于 2012-06-16T17:10:43.390 に答える
0
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">

これにより、現在のスクリプト アドレスがアクション フィールドに入力されます。

于 2012-06-16T15:30:58.560 に答える
0

ハッシュ記号を使用してみてください。action="#"

于 2012-06-16T15:36:04.850 に答える