2017-01-14 1 views
1

입력 필드가있는 html 양식이 있습니다. 양식의 데이터는 php에서 ajax 함수를 통해 전송되고 php는 결과를 html로 반환합니다. 모든 필드가 채워지지는 않지만 php가 실행되어 결과를 반환합니다. 모든 필드가 채워지면 PHP에서 결과를 얻지 못합니다.필수 필드가 채워지지 않아서 PHP가 실행되었습니다

누구든지 내가이 문제를 해결할 수 있도록 도와 줄 수 있습니까? 사전에

감사

HTML

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Test</title> 
<script type="text/javascript" src="ajax.js"></script> 
</head> 
<body> 
<div id="inputform"> 
    <form> 
     Name:<br> 
     <input type="text" id="firstname" required><br> 
     Surname:<br> 
     <input type="text" id="lastname" required ><br> 
     <input type="submit" value="submit" onclick='ajax()'> 
     <div id="ajaxDiv"></div> 
    </form> 
</div> 

자바 스크립트

function ajax() { 
var ajaxRequest; // The variable that makes Ajax possible! 

try { 
    // Opera 8.0+, Firefox, Safari 
    ajaxRequest = new XMLHttpRequest(); 
} catch (e) { 
    // Internet Explorer Browsers 
    try { 
     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
      ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) { 
      // Something went wrong 
      alert("Your browser broke!"); 
      return false; 
     } 
    } 
} 
// Create a function that will receive data sent from the server 
ajaxRequest.onreadystatechange = function() { 
    if (ajaxRequest.readyState == 4) { 
     var answer = document.getElementById('ajaxDiv'); 
     answer.innerHTML = ajaxRequest.responseText; 
    } 
}; 

var firstname = document.getElementById('firstname').value; 
var lastname = document.getElementById('lastname').value; 


var queryString = "?firstname=" + firstname + "&lastname=" + lastname; 
ajaxRequest.open("GET", "test.php" + queryString, true); 
ajaxRequest.send(null);} 

PHP

<?php 
$firstname=$_GET['firstname']; 
$lastname=$_GET['lastname']; 
echo $firstname; 
?> 

답변

0

당신은 아약스를 사용 양식 데이터를 서버로 보내고 양식 제출시 ajax() 메소드를 호출하십시오. 따라서 <form> 태그는 필요하지 않습니다. 버튼을 클릭하면 ajax() 함수가 호출되어 자동으로 양식을 제출하기 때문입니다.

제거 <form> 변경 : <input type="submit" value="submit" onclick='ajax()'> 빠른 답변 감사합니다 <input type="button" value="submit" onclick='ajax()'>

+0

합니다.

태그가없고 type = "submit"이 아닌 경우 제출을 클릭하면 필드가 채워지지 않았다는 알림을받지 못합니다. –

+0

서버로 데이터를 어떻게 보내시겠습니까? 비동기 적으로 또는? 비동기식 인 경우 ajax를 사용하고 form 태그를 제거해야합니다. 그렇지 않으면 ajax를 제거하고 양식 태그'method = "get"'을 사용해야합니다. – Vusal

관련 문제