Данные формы не передаются в файл

101
11 июля 2021, 17:00

Сам сайт: Сайт

Проблема в том,что данные из формы index.html не передаются в handler.php Код файла index.html:

<!DOCTYPE html> 
<html> 
 <head> 
  <title>Сайт</title> 
   <style> 
   
   body  
   { 
    background: #f6e8d7; 
   } 
   #helpMe 
   { 
     
      background: #f0f0f0;  
    width: 400px;  
    padding: 10px; 
    border: 2px solid #000;  
	 
   } 
   input[type="submit"]	 
   { 
	   
	   border: 4px inset #100; 
	    cursor: url(WorldOfWarCraft/arrow.cur),pointer; 
	    
   } 
   p b 
   { 
	   color:orange; 
	   border: 1px inset #100; 
	   box-shadow: 0 0 10px rgba(0,0,0,0.5); 
	   background: #808080; 
	   outline-style: outset; 
   } 
   img.rightfoto 
   { 
	margin: 0px;  
	float: right ; 
   } 
   .active { 
  border: 1px solid red; 
  color: red; 
} 
  </style> 
 </head> 
 
 
    
 <body> 
<img class="img.rightfoto" src="image.png" " > 
 <form method="GET" action="handler.php" class="formWithValidation" style="float: left;"> 
 
 
  <fieldset class="fieldset" style="width: 400px;"> 
 <h3 style="font-family: fantasy;font-stretch: inherit;font-weight: 0;" >ЗАГОЛОВОК </h5> 
 <h5> 210001 <h3> 
  <p><b name="textX"> X</b> 	       </p> 
 
 
     
		   <div id="helpMe">  
		    
		    <input type="button" class='checkboxxx'  name="InputX" value="-2">  
				<input type="button" class='checkboxxx' name="InputX" value="-1.5"> 
				<input type="button" class='checkboxxx' name="InputX" value="-1"> 
				<input type="button" class='checkboxxx' name="InputX" value="-0.5"> 
				<input type="button" class='checkboxxx' name="InputX" value="0"> 
				<input type="button" class='checkboxxx' name="InputX" value="0.5"> 
				<input type="button" class='checkboxxx' name="InputX" value="1"> 
				<input type="button" class='checkboxxx' name="InputX" value="1.5"> 
				<input type="button" class='checkboxxx' name="InputX" value="2"> 
				  
				</div> 
				 
				<Br> 
			 
			 
	<p><b> Y</b></p> 
            
				<p><input type="text" class="Y"  maxlength="5" size="6" name="InputY" placeholder=" От -3 до  3"></p> 
			 
	 
	<p><b> R</b></p> 
	<p> 
	        <p><input type="text" class="RRR"  maxlength="5" size="6" name="InputR" placeholder="  От 1 до  4"></p> 
	 
		  
    </p> 
	<p><input type="submit"   class="validateBtn" ></p> 
	   </fieldset> 
	    
</form> 
 
  <script> 
  var SMSx; 
  var SMSy; 
  var SMSr; 
  var conditionX=0; 
  var form=document.querySelector('.formWithValidation'); 
  var button=document.querySelectorAll('.checkboxxx'); 
for (var buttoned of button) 
 { 
  buttoned.addEventListener('click', function (event)  
	{ 
         var X=event.clientX;	 
	 var Y=event.clientY; 
         button.forEach(i => 
			i.classList.remove('active')); 
 
		 
        this.classList.toggle('active'); 
	}); 
}; 
 
 
 
    function showError(container, errorMessage) { 
       
     var msgElem = document.createElement('span'); 
      msgElem.className = "error-message"; 
      msgElem.innerHTML = errorMessage; 
      container.appendChild(msgElem); 
       
    } 
  
    function resetError(container) { 
            if (container.lastChild.className == "error-message") { 
        container.removeChild(container.lastChild); 
      } 
    } 
     
    form.addEventListener('submit', function (event)  
    { 
    resetError(document.querySelector('.fieldset') ); 
 
      var elems = form.elements; 
      if (elems.InputY.value)  
      { 
        var reg=/^\d+[,]\d*$|^\d+$/ ; 
				if(reg.test(elems.InputY.value)) 
				{	 
       					SMSy="" 
				} 
                                else  
				{ 
					SMSy="Ошибка заполнения Y"; 
					event.preventDefault() ; 
 
				} 
				 
         
      } 
      else 
      { 
         SMSy=" Заполните Y <Br>"; 
         event.preventDefault() ; 
      } 
       
      if ((elems['InputX'][0].classList.contains('active'))||(elems['InputX'][1].classList.contains('active'))|| 
      (elems['InputX'][2].classList.contains('active'))||(elems['InputX'][3].classList.contains('active'))|| 
      (elems['InputX'][4].classList.contains('active'))||(elems['InputX'][5].classList.contains('active'))|| 
      (elems['InputX'][6].classList.contains('active'))||(elems['InputX'][7].classList.contains('active')) 
      ||(elems['InputX'][7].classList.contains('active'))) 
      { 
		        SMSx="" 
		           
	    } 
       	else 
       	{ 
		        SMSx="<p style=\"font-size: 120%; font-family: monospace; color: #cd66cc\">Заполните  X </p> "; 
            event.preventDefault() ; 
	        } 
	        if (elems.InputR.value)  
      		{ 
                                var reg=/^\d+[,]\d*$|^\d+$/ ; 
				if(reg.test(elems.InputR.value)) 
				{	 
       				SMSr="" 
				} 
                                else { 
								SMSr="Ошибка заполнения R"; 
											   							event.preventDefault() ; 
 
							} 
 
         
     			 } 
      		  else 
                    { 
                      SMSr=" Заполните  R <Br>"; 
                      event.preventDefault() ; 
                    } 
	       showError(document.querySelector('.fieldset') , SMSx+SMSy+SMSr); 
      }); 
  </script> 
 
 
 
</body> 
 
</html>

Исходный код handler.php :

<html> 
 
 <head> 
 
  <title>Тестируем PHP</title> 
 </head> 
 <body> 
 <?php 
 
 if (!empty($_GET["InputX"])&&!empty($_GET["InputY"])&&!empty($_GET["InputR"]))  
 {  
     $X=$_GET["InputX"]; 
	 $R=$_GET["InputR"]; 
	 $Y=$_GET["InputY"]; 
	 echo " Получены новые вводные: имя ".$_GET["InputX"].", возраст  ".$_GET["InputY"]." лет и ".$_GET["InputR"]." "; 
	  
     if(($X>-$R&&$X<0&&($Y>-$R)&&($Y<0))||($X<$R/2&&$X>0&&($Y>-$R/2)&&($Y<0)&&($X^2+$Y^2<$R/2*$R/2))||(($Y<$R)&&($X<$R/2)&&($Y<-2*$X+$R))) 
	 { 
		 echo " <b>Проверка пройдена.Точка попадает в график</b>"; 
		  
	 }else{  
           echo " <b>Проверка не пройдена.Точка вне графика</b>"; 
	 } 
	  
 }  
 else 
 {  
     echo "Переменные не дошли. Проверьте все еще раз."; 
 } 
  
 
?> 
<form method="GET" action="index.html"> 
    <input type="submit" value="Повторить ввод"> 
</form> 
 </body> 
</html>

Answer 1

Данные передаются,но не все - значение поля типа <input type="button"> не будут передаваться на сервер, и из-за вашего условия

 `if (!empty($_GET["InputX"])&&!empty($_GET["InputY"])&&!empty($_GET["InputR"]))` 

вы получаете

echo "Переменные не дошли. Проверьте все еще раз.";

Что бы передать значения из type="button" можно воспользоваться скрытым полем. И при клике на кнопку передавать в него значение.

    <input type="button" onclick="change(1)"></input>
    ...
    <input type="button" onclick="change(3)"></input>
    <input type="hidden" id="InputX" name="InputX" value="" />
    function change(value){
        document.getElementById("InputX").value= value;
    }
READ ALSO
Передача данных в comboBox

Передача данных в comboBox

С помощью combobox пытаюсь изменять размер изображениеДелаю это вот таким образом

125
Реверс инжиниринг

Реверс инжиниринг

Доброго времени суток!

100
Не могу наследовать класс QNetworkReply

Не могу наследовать класс QNetworkReply

Всем приветВторой день бьюсь головой и не могу наследоваться от класса QNetworkReply

83