0

私が達成しようとしていることはかなり単純に思えますが、PHP を実行するための十分な理解がありません。はいまたはいいえのラジオボタンを備えた単純なフォームがあります。フォームの送信時にモーダル ウィンドウを起動し、「はい」と回答されたすべての質問を表示したいと考えています。モーダル内にフォーム送信以外のコンテンツを含める予定なので、iframe を使用してモーダル ウィンドウを正常に起動できますが、使用している非常に単純な php スクリプトがモーダル内に表示されません。fancybox スクリプトを削除し、フォーム アクション php ファイルを同じにすると、問題なく動作します。

jquery と php スクリプトが異なるタイミングで起動する間に競合があると想定していますが、これを修正する方法をどこから始めればよいかわかりません。以下は私が取り組んでいるコードです。私はphpのコーディング方法がわからないことを覚えておいてください。

http://staging.drugrehabtest.comで実例を見ることができます。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="scripts/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="scripts/jquery.fancybox.pack.js?v=2.1.5"></script>

<script type="text/javascript">
    if(!jQuery.browser.mobile){
        jQuery(document).ready(function() {
            $(".fancybox").fancybox({
                'width'  : 920,
                'minHeight' : 230,
                'type'   : 'iframe',
                'padding': 20,
                'href': 'success.php',
            });
        });
    }
</script>

<form action="success.php" method="post" name="contact" id="contact">
    <input type="radio" class="checkbox" name="one" value="yes" title="Do you find yourself using drugs even when you don't want to?: Yes" />
    <label class="question">Do you find yourself using drugs even when you don't want to?</label>
    <input type="submit" name="Submit" id="submit" class="fancybox fancybox.iframe" />
</form>   

Success.php ページ (その他の標準的な html 要素を除く)

<?php
    if ($_POST['one']=="yes") { echo "Do you find yourself using drugs even when you don't want to?"; }
?>
4

4 に答える 4

1

あなたが使用することができます

$(document).ready(function(){
        $("#"+secc+"form").submit(function(){
            var formData = new FormData($(this)[0]);
            $.ajax({
                url: '../form/',
                type: 'POST',
                data: formData,
                async: false,
                success: function (data) {
                    //history,go(-1);
                },
                cache: false,
                contentType: false,
                processData: false
            });

        return false;
        });
    });

問題は、「var formdata」のバージョン jquery が 1.10 でのみ機能し、fancybox がこのバージョンでは機能しないことです。

于 2013-10-14T19:25:30.527 に答える
0

あなたの方法では、データはどこにも行きません! ajax を介してデータを投稿する必要があります。少し調整が必要です。

 jQuery(document).ready(function() {
   $(".fancybox").fancybox({
    'width'  : 920,
    'minHeight' : 230,
    'type'   : 'iframe',
    'padding': 20,
    'href': 'success.php',
    'data': $("#contact").serializeArray(),//send all form fields
  });

このようにして、他のページにデータを含めることができます...

たぶん、この投稿はあなたにもっと役立ちます!

于 2013-08-26T19:17:47.837 に答える
0
jQuery(document).ready(function() {
   $(".fancybox").fancybox({
    'width'  : 920,
    'minHeight' : 230,
    'type'   : 'iframe',
    'padding': 20,
    'href': 'success.php',
    'data': $("#contact").serializeArray(),//send all form fields
  });
于 2016-09-30T04:50:18.920 に答える