0

fancyboxウィンドウポスト(Ajax)データ内のフォームをphpページに使用しています。

Fancyboxの外でフォームを実行すると、完全に機能します。挿入-チェック。応答-確認してください。そうは言っても、同じページをFancyboxで実行すると、ロードホイールが表示されます(オーバーレイを閉じた後も保持されます)。

ここに画像の説明を入力してください

フォーム(form_test.php):

<form id="form" method="post" action="">
    <input type="text" id="name" name="name" value="Test Name" />
    <input type="text" id="email" name="email" value="email@test.com" />
    <input type="submit" value="Login" />
</form>

<script type"text/javascript">
    $("#form").bind("submit", function () {
$.fancybox.showLoading(); // it was $.fancybox.showActivity(); for v1.3.4
$.ajax({
    type: "POST",
    cache: false,
    url: "test.php", // make sure your path is correct
    data: $(this).serializeArray(), // your were using $(form).serialize(), 
    success: function (data) {
        $.fancybox(data);
    }
});
return false;
}); // bind
</script>

PHP(test.php):

$name=$_POST['name'];
$email=$_POST['email'];

$query=mysql_query("INSERT INTO members (firstName,email) VALUES('$name','$email')");
if($query){
    echo "Data for $name inserted successfully!";
}
else{
    echo "An error occurred!";
}

アイデア?

4

1 に答える 1

0

試す

$("#form").bind("submit", function () {
    $.fancybox.showLoading(); // it was $.fancybox.showActivity(); for v1.3.4
    $.ajax({
        type: "POST",
        cache: false,
        url: "test.php", // make sure your path is correct
        data: $(this).serializeArray(), // your were using $(form).serialize(), 
        success: function (data) {
            $.fancybox(data);
        }
    });
    return false;
}); // bind

これで、 text.php$.fancybox(data);ファイルから送信したものはすべて (fancybox 内で) 返されるので、次のようにそのファイル内 の from を返すことができます。<div id="message">

if($query){
  echo "<div id='message'>Data for $name inserted successfully!</div>";
} else {
  echo "<div id='message'>An error occurred!</div>";
}
于 2013-03-02T02:59:24.430 に答える