0

ユーザーが私たちのフォームの 1 つにオプトインした後に表示される「ありがとう」ページを作成しようとしています。そのページには、ユーザーがギフトとして無料の CD を選択するオプションがあり、送料のみを支払う必要があります。物理的な CD またはデジタル MP3 のいずれかを選択するオプションをユーザーに提供したいと考えています。ここでのロジックは、最初に各ラジオ ボタンに接続する 4 つの CD の選択をユーザーに提供することです。その下には、「はい、CD を郵送してください」などの最初の [送信] ボタンがあります。最初のボタンの下に、「代わりにダウンロード リンクを送信してください」のようなメッセージが表示される 2 番目の [送信] ボタンがあります。したがって、ユーザーがいずれかのラジオ ボタンをクリックしてから、最初の送信ボタンをクリックすると、ボタンをクリックすると、その CD のショッピング カートに移動し、そこで CD の送料を支払うよう求められます。ユーザーが同じラジオ ボタンをクリックしてから 2 番目の[送信] ボタンをクリックすると、ダウンロードするためのリンクに移動します。以下の 3 番目のリンクは、ユーザーがこのオファーをオプトアウトすることを選択した場合に、ページを通過するだけです。

スクリプトを正しく動作させることができません。これが私がこれまでに持っているものです:

<?PHP

$option1 = 'unchecked';
$option2 = 'unchecked';
$option3 = 'unchecked';
$option4 = 'unchecked';


if (isset($_POST['Submit1'])) 

        {

    $selected_radio = $_POST['cd_choice'];

        if ($selected_radio == 'option1') 
        {
            $option1 = 'checked';
                     ?>
                      <a href="#">Purchase link 1</a>
                     <?php

        }
        else if ($selected_radio == 'option2') 
        {
        $option2 = 'checked';
                     ?>
                      <a href="#">Purchase link 2</a>
                     <?php          
        }
        else if ($selected_radio == 'option3') 
        {
        $option3 = 'checked';
                     ?>
                      <a href="#">Purchase link 3</a>
                     <?php          
        }
        else if ($selected_radio == 'option4') 
        {
        $option4 = 'checked';
                     ?>
                      <a href="#">Purchase link 4</a>
                     <?php          
        }
    }
else
    {
    $selected_radio = $_POST['cd_choice'];

        if ($selected_radio == 'option1') 
        {
         $option1 = 'checked';
                     ?>
                      <a href="#">Download link 1</a>
                     <?php          
        }
        else if ($selected_radio == 'option2') 
        {
         $option2 = 'checked';
                     ?>
                      <a href="#">Download link 2</a>
                     <?php          
        }
        else if ($selected_radio == 'option3') 
        {
         $option3 = 'checked';
                     ?>
                      <a href="#">Download link 3</a>
                     <?php          
        }
        else if ($selected_radio == 'option4') 
        {
         $option4 = 'checked';
                     ?>
                      <a href="#">Download link 4</a>
                     <?php          
        }
    } 
?>

HTML部分については、次のとおりです。

<body>

<FORM NAME ="form1" METHOD ="POST" ACTION ="radioButton_test.php">

  <INPUT TYPE = 'Radio' Name ='cd_choice'  value= 'option1' <?PHP print $option1; ?>>
  This is the first CD
  <INPUT TYPE = 'Radio' Name ='cd_choice'  value= 'option2' <?PHP print $option2; ?>>
  This is the second CD
  <INPUT TYPE = 'Radio' Name ='cd_choice'  value= 'option3' <?PHP print $option3; ?>>
  This is the third CD
  <INPUT TYPE = 'Radio' Name ='cd_choice'  value= 'option4' <?PHP print $option4; ?>>
  This is the fourth CD
<P>
<center><INPUT TYPE = "Submit" Name = "Submit1"  VALUE = "Yes, please mail me a CD"></center>
<p><center><INPUT TYPE = "Submit" Name = "Submit2"  VALUE = "Send me download link instead"></center></p>
<div align="center"><a href="#">No thanks. </a></div>
</FORM>

どんな助けでも大歓迎です。ありがとうございました!

4

1 に答える 1

0

私はあなたの HTML を少しきれいにする自由を取りました - 一般に最近の HTML は小文字です - しかし基本的には JavaScript で非常に簡単にクリックされたボタンに応じてフォームの動作を変えることができます:

<form name="form1" id="form1" method="POST" action="radioButton_test.php">
   <center><input type="Submit" name="Submit1" value="Yes, please mail me a CD" onclick="this.form.action='test1.php';alert(this.form.action);"></center>
   <p><center><input type="Submit" name="Submit2" value="Send me download link instead" onclick="this.form.action='test2.php';alert(this.form.action);"></center></p>
</form>

フォーム名 "test1.php" および "test2.php" を実際の php スクリプト名に変更し、alert(this.form.action);コードを削除する必要がありますが、これで目的が達成されるはずです。

または、同じスクリプトにポストバックする場合は、送信ボタンの値を確認するだけです。クリックした送信ボタンは投稿に渡されますが、他のボタンは渡されません。

if ( !empty($_POST['Submit1']) )

または

if ( isset($_POST['Submit1']) )

または

if ( isset($_POST['Submit1']) && $_POST['Submit1'] == 'Yes, please mail me a CD' )
于 2013-04-25T04:33:48.113 に答える