Как получить данные из группы radiobuttons с помощью php в форме обратной связи?

#php

#php

Вопрос:

Пожалуйста, помогите с этой ситуацией: у меня есть простая форма обратной связи с кнопками оценки по типу «радио»:

 <form action="php/feedback.php" method="post">
<input type="text" class="form-control" id="exampleInput2" placeholder="Name and Surname)" name="q4" required>
<p>Please, rate us!</p>
<label class="radio-inline"><input type="radio"  id="inlineRadio1" value="1" name="q5_1"> 1 </label>
<label class="radio-inline"><input type="radio"  id="inlineRadio2" value="2" name="q5_2"> 2 </label>
<label class="radio-inline"><input type="radio"  id="inlineRadio3" value="3" name="q5_3"> 3 </label>
<label class="radio-inline"><input type="radio"  id="inlineRadio4" value="4" name="q5_4"> 4 </label>
<label class="radio-inline"><input type="radio"  id="inlineRadio5" value="5" name="q5_5"> 5 </label>
</form>
  

И мой php-код:

 <? 
$adminemail="test@test.mymail"; 
$date=date("d.m.y"); 
$time=date("H:i"); 
$backurl="http://test.mymail"; 
$q4=$_POST['q4']; 
if ($_POST['q5_1']==="1") echo $q5_1=$_POST['q5_1']; 
if ($_POST['q5_2']==="2") echo $q5_1=$_POST['q5_2']; 
if ($_POST['q5_3']==="3") echo $q5_1=$_POST['q5_3']; 
if ($_POST['q5_4']==="4") echo $q5_1=$_POST['q5_4']; 
if ($_POST['q5_5']==="5") echo $q5_1=$_POST['q5_5']; 
{   
$msg=" 
Name: $q4
Rate: $q5_1 $q5_2 $q5_3 $q5_4 $q5_5
"; 
mail("$adminemail", "$date $time Feedback from $q4", "$msg" ,"Content-type:text/plain;  charset=utf-8");
print "<script language='Javascript'><!-- function reload() {location = "$backurl"}; setTimeout('reload()', 2000); //--></script> 
<p>Redirecting....</p>";  
exit; 
}
?>
  

И данные из переключателей не попадают в сообщение. И я не знаю, как заставить это работать. Спасибо за вашу помощь!

Комментарии:

1. Ваши переключатели должны иметь name атрибут equal ( name="q5" ) — тогда при отправке к этому имени будет добавлено значение. (Т.е. $_POST["q5"] будет либо 1,2,3,4 или 5 в зависимости от выбранной кнопки.)

Ответ №1:

Вам нужно отправить данные на свою php страницу либо с ajax помощью, либо с помощью простого input тега with type='submit' , у вас также были многочисленные синтаксические ошибки в вашем php коде

 <?php 
if(POST_['submit']){ //to make sure data was actually sent from the page
$adminemail="test@test.mymail"; 
$date=date("d.m.y"); 
$time=date("H:i"); 
$backurl="http://test.mymail"; 
$q4=$_POST['q4']; 
if ($_POST['q5_1']=="1"){ echo $q5_1=$_POST['q5_1'];} 
if ($_POST['q5_2']=="2"){ echo $q5_1=$_POST['q5_2'];}
if ($_POST['q5_3']=="3"){ echo $q5_1=$_POST['q5_3'];}
if ($_POST['q5_4']=="4"){ echo $q5_1=$_POST['q5_4'];}
if ($_POST['q5_5']=="5"){ echo $q5_1=$_POST['q5_5'];} 
 //{ not sure why this was here  
$msg=" 
Name: $q4
Rate: $q5_1 $q5_2 $q5_3 $q5_4 $q5_5
"; 
mail("$adminemail", "$date $time Feedback from $q4", "$msg" ,"Content-type:text/plain;  charset=utf-8");
print "<script language='Javascript'><!-- function reload() {location = "$backurl"}; setTimeout('reload()', 2000); //--></script> 
<p>Redirecting....</p>";  
exit; 
//} or this
} //end of submit post
?>
  

Комментарии:

1. отсутствие запроса { и } не является синтаксической ошибкой. Они не обязательны, но это не так.

2. Улучшает организацию кода, я знаю, что это не требуется. Но аккуратный код — это счастливый код