0
<?
session_start();
include("connection.php"); 

if($_POST['continue']) 
{
    $x=$_POST['rules'];
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="jquery-ui-1.7.2.custom.css" rel="stylesheet" />
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script type="text/javascript" src="jquery-1.3.2.js"></script>
    <script type="text/javascript" src="ui/ui.core.js"></script>
    <script type="text/javascript" src="ui/ui.draggable.js"></script>
    <script type="text/javascript" src="ui/ui.resizable.js"></script>
    <script type="text/javascript" src="ui/ui.dialog.js"></script>
    <script type="text/javascript" src="external/bgiframe/jquery.bgiframe.js"></script>

    <script type="text/javascript">

    function haha(form) 
    {    
        if(form.rules.value=='')
        {
            printToPage('output','Please enter the rules.','text')
            hello();
            return false;               
        }
        else
        {
            myRedirect();
            return false;
        }
    }

    $(function() 
    {
        $("#dialog").dialog({
            autoOpen: false,
            bgiframe: true,
            resizable: false,
            draggable: false,
            height:10,
            width:340,
            modal: true,
            overlay: 
                    {
                       backgroundColor: '#000',
                       opacity: 0.5
                    },
            buttons: 
                    {
                       'No': function() 
                        {
                           window.location = "so-rules.php";
                           return true;
                        },
                       'Yes': function() 
                        {
                           window.location = "so-rules.php";
                           return true;
                        }
            }
        });
    });

    function myRedirect() 
    {
       $("#dialog").dialog('open');
       return true;
    }

    $(function()
    {
       $("#dialog2").dialog
             ({
            autoOpen: false,
            bgiframe: true,
            modal: true,
            resizable: false,
            draggable: false,
            height:160,
            width:260,
            buttons: 
                    {
                        Ok: function() 
                        {
                            $(this).dialog('close');
                        }
                    }
        });
    });

    function hello() 
    {
       $("#dialog2").dialog('open');
    }

    function getElem(id) 
    {
        return document.all ? document.all(id) :
        document.getElementById ? document.getElementById(id) :
        document.layers ? document.layers[id] :
        null;
    }

    function printToPage(id,content,classname) 
    {
       var el = getElem(id);

       if (!el) return;

       if (el.style) 
       {
          el.innerHTML = content;

          if (classname) el.className = classname;
       }
       else if (el.document) 
       {
          var SPANstr = (classname) ? '<span class="' + classname + '">' : '<span>';
          el.document.write('haha');
          el.document.close();
       }
    }
    </script>

</head>

<body>


   <td height="" bgcolor="#fafb91"><form onsubmit='return haha(form)' id="form" name="form" method="post" action="<? echo $PHP_SELF; ?>"> 
          <p class="style16">
          <div align="left">

            <p><span class="style5">Rules:</span>
              </p>

            <p>
              <textarea name="rules" rows="7" cols="49"></textarea>

              <br />
              <? echo "X: ".$_SESSION['x']; ?>
            </p>
            <div id="dialog" title="Attention">
            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Is the judge/speaker/facilitator from UST?</p>
            </div>

            <div id="dialog2" title="Attention">
            <p>
            <span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 0 50px 0;"></span>
            Please enter the rules.
            </p>
            </div>

            <p><input type="submit" name="continue" id="continue" value="Continue"> 
            <span id="output"></span>

</body>
</html>

textarea が null でない場合、フォームを送信 ($PHP_SELF) して、textarea の値を取得できるようにする必要があります。ただし、送信する前に、ダイアログ ボックスが表示されます。ユーザーが [はい] をクリックすると、別のページにリダイレクトされます。私の問題は、テキストエリアの値を取得するためにページが送信されるように、「true」を返す場所がわからないことです。ここに「false」を返します。

if(form.rules.value=='')
{
   printToPage('output','Please enter the rules.','text')
   hello();
   return false;    
}

textarea が null の場合、フォームは送信されず、別のダイアログ ボックスが表示されます。ユーザーがテキストエリアに何かを入力し、「はい」をクリックした後にのみページが送信されるように、戻り値「true」をどこに置く必要がありますか。

成功せずに戻り値「true」を入れようとしたコードを投稿しました。

4

4 に答える 4

0

type="button" の場合は、onclick イベントを使用してアクションを制御します

于 2009-09-12T15:04:03.177 に答える
0

ボタン入力は、通常 JavaScript で記述されるカスタム アクションに使用されます。つまり、Submit 入力のようなフォームを送信しません。フォームを送信する JavaScript コードを記述したり、特定の PHP ページに移動して同様の効果を得ることができます。

于 2009-09-12T15:04:07.190 に答える
0

あなたが求めているのは: どのボタンがクリックされたかを POST 応答で確認するにはどうすればよいですか?

次に、フォームの送信に使用された送信ボタンの名前と値だけがデータにリストされているため、できません$_POST

ただし、非表示フィールドと JavaScript を使用してこれを実現できます。したがって、次のようなことを行う必要があります。

<input type="button" id="continue" value="Continue" onclick="document.getElementById('hiddenContinue').value = 'true';" />
<input type="hidden" name="continue" id="hiddenContinue" value="false" />

そのため、ボタンをクリックすると非表示フィールドが true に設定され、フォームが送信されると$_POST配列に表示されます。

ただし、ボタンに他の onclick イベントが追加されていない場合、これはあまり意味がありません。

たぶん、あなたがやろうとしていることをもう少し説明する必要があります。

編集

古い質問を新しい質問に更新したため、この回答は適用されなくなりました。

于 2009-09-12T15:04:46.903 に答える
0

なぜ「送信」ではなく「ボタン」を使っているのだろうか?「ボタン」は JavaScript を使用する場合に便利ですが、PHP では機能しません。さらに、とにかく違いはありません。
ボタンを区別したいだけなら、別の名前を付けてみてください。
その助けを願って

于 2009-09-12T15:08:34.173 に答える