Несколько переключателей и две отдельные кнопки "Отправить", где логика будет течь в зависимости от выбранных параметров
Я пытаюсь создать страницу "Спасибо", на которую пользователь попадает после того, как он / она выбрал одну из наших форм. На этой странице пользователь может выбрать бесплатный компакт-диск в качестве подарка, и ему нужно будет только оплатить доставку. Я хотел бы дать пользователю возможность выбрать физический компакт-диск или цифровой MP3. Логика здесь заключается в том, что сначала я предоставляю пользователю выбор из 4 компакт-дисков, которые я подключаю к каждой радиокнопке. Затем, ниже, появится первая кнопка " Отправить", которая скажет что-то вроде "Да, пожалуйста, пишите на CD". Под первой кнопкой будет вторая кнопка "Отправить" с надписью "Пришлите мне ссылку для скачивания". Таким образом, если пользователь нажимает любую из переключателей, а затем нажимает первую кнопку " Отправить", они будут перенаправлены в корзину для этого компакт-диска, где ему будет предложено оплатить стоимость доставки компакт-диска. Если пользователь нажимает на ту же кнопку-переключатель, но затем нажимает вторую кнопку " Отправить", он будет переведен по ссылке для ее загрузки. Третья ссылка ниже просто уведет пользователя за страницу, если он решит отказаться от этого предложения.
Я не могу заставить скрипт работать правильно для меня. Вот что у меня так далеко:
<?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>
Любая помощь будет принята с благодарностью. Спасибо!
1 ответ
Я взял на себя смелость немного почистить ваш 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' )