1

単一のボタンと、値が事前設定された非表示の入力フィールドを備えたページにいくつかのフォームがあります。

<form action="product.html" method="get">
<fieldset>
<input style="display: none;" type="text" name="RSS" id="RSS" value="RSS" />
<input type="submit" value="Go"/>
</fieldset>
</form>

<form action="product.html" method="get">
<fieldset>
<input style="display: none;" type="text" name="RSS2" id="RSS2" value="RSS2" />
<input type="submit" value="Go"/>
</fieldset>
</form>

いずれかのフォームで [Go] ボタンをクリックすると、product.html ページにリダイレクトされ、上記の値に基づいて特定の div が読み込まれます。

<div id="ID CHANGE TO OCCUR HERE to either be RSS or RSS2"></div>

私の質問は、その id をその div で変更するにはどうすればよいですか? ありがとう

PS: 会社のサーバーでは PHP が有効になっていません。

4

3 に答える 3

0

私の理解が正しければ、プログラムの制御が product.html に移行したときに、どのフォームの値が検出されたか (つまり、ユーザーがどのフォームをクリックしたか) を知りたいと考えています。

HTMLだけでこれを行う方法は考えられません。これは、PHP や ASP .Net などのサーバー側言語の仕事です。

PHPでは非常に簡単です。既存のすべての HTML ファイルを取得して、名前を .php (例: product.php) に変更するだけで、同じように機能することに注意してください。

これをファイルの先頭に置くだけです。実際、これは完全なファイルです (サーバーにコピーして貼り付けてテストするだけです)。

製品.php

<?php 

    /*   Below not required, but un-comment to see useful info: 
    echo '<pre>';
    print_r($_REQUEST);
    echo '<pre>';
    */

    if (isset($_REQUEST['RSS'])) {
        echo 'User clicked the RSS form';
    } else if (isset($_REQUEST['RSS2'])) {
        echo 'Sent here by the RSS2 form';
    }

action=処理ファイルの名前が変更されたため、これを試す前に、各フォームの行を変更することを忘れないでください。

<form action="product.php" method="get">

説明:

フォームが送信されると、フォーム要素 (入力フィールド、ラジオ ボタン、チェックボックス) が変数に変換され、処理ドキュメントaction=( form タグの属性で指定された対象ドキュメント) に送信されます。

各要素では、変数名はname=その要素の属性であり、変数値はvalue=属性、またはたとえば入力フィールドの場合は、送信を押す前にユーザーがフィールドに入力したものです。

method="Get"フォームを として送信する場合と として送信する場合のプログラミング/機能の違いはほとんどありませんmethod="POST"が、post メソッドの方が安全であり、より多くの情報を転送できるため、ほとんどの人はそれを使用しています。

最後に、変数値を取得する方法は 3 つあります (PHP の例)。

 $newvar = $_GET['varname'];  //if method="GET" was used

 $newvar = $_POST['varname'];  //if method="post" was used

 $newvar = $_REQUEST['varname'];  //works for both

PHP についてさらに支援が必要な場合は、Alex Garret の 10 分間の無料ビデオをNew Bostonまたは彼自身のサイトでご覧ください。

于 2013-10-18T19:00:38.787 に答える
0

JavaScript を使用してリクエストをテストできます。

if(location.href.indexOf("RSS=RSS") > 0) {
    var element = document.getElementById('RSS')
    element.id = "RSS2";
    element.name = "RSS2";
    element.value = "RSS2";
}

これは単なる indexOf チェックです。クエリ文字列全体を解析し、キーと値のペアを配列に関連付けることもできます。JavaScript でクエリ文字列値を取得する方法を参照してください。

于 2013-10-18T20:51:06.473 に答える
0

あなたの質問を読み直して、完成した例をまとめました。ターゲット ページには 2 つの DIV があり、ユーザーがクリックしたフォームに応じていずれかを表示したいとします。

これは、ソリューションの実例です。次の 2 つのファイルにコピー/貼り付けします。

test.php -- このファイルの名前は自由に変更できます
product.phpaction= -- この名前を変更する場合は、フォームの両方の属性の名前も変更する必要があります


test.php

<form action="product.php" method="get"> <!--  product.html -->
<fieldset>
    <input type="hidden" name="RSS" id="RSS" value="RSS" />
    <input type="submit" value="Go"/>
</fieldset>
</form>

<form action="product.php" method="get">
<fieldset>
    <input type="hidden" name="RSS2" id="RSS2" value="RSS2" />
    <input type="submit" value="Go"/>
</fieldset>
</form>

製品.php

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var whichone = $('#xfer').val();
                //alert( whichone );
                $('#' + whichone).show();
            });
        </script>
    </head>
    <body>
        <input type="hidden" id="xfer" value="<?php echo ( isset($_REQUEST['RSS'])  ? 'RSS' : 'RSS2' ) ; ?>">

        <div id="RSS" style="display:none;">
            <h1>RSS DIV</h1>
            Here is some information regarding the RSS div.
        </div><!-- #RSS -->
        <div id="RSS2" style="display:none;">
            <h1>RSS2 DIV</h1>
            <i>Here is some <strong>different </strong>information regarding the RSS2 div.</i>
        </div><!-- #RSS -->
    </body>
</html>
于 2013-10-18T19:41:39.957 に答える