2013-01-17 2 views
3

양식을 제출하면 내 페이지가 PHP로 리디렉션되고 에코가 표시됩니다. PHP 페이지로 리디렉션되지 않고 에코를 표시하려면 어떻게해야합니까? 따라서 에코는 html 페이지 (html 양식이있는 곳)에 표시되어야합니다.양식을 제출 한 후 동일한 HTML 페이지에 에코하는 방법은 무엇입니까?

<form method="post" action="../form.php"> 
<input type="submit" name="1" value="YES" /> 
<input type="submit" name="1" value="NO" /> 
</form> 

-

<?php 
$answer = $_POST['1']; 
if ($answer == "YES") {   
    echo 'Good!!!';  
} 
else { 
    echo 'Try Again!'; 
} 
?> 
+0

은 동일한 스크립트 (form.php)에서이 모든 것을 처리하는 양식 및 코드입니다. – Mattt

+0

'양식이 HTML 페이지 (어쩌면 div 나 입력 필드 안에)에 어딘가에 제출했는지 ' – Peter

+0

당신의 말은 이해하지만, 페이지를 새로 고침하지 않고 무언가를 표시하려고하는 것처럼 들리겠습니까? AJAX와 함께 할 수 있습니다 –

답변

4

결과를 얻으려면 과 javascript 조합을 사용할 수 있습니다.

<form method="post" action="submit.php" target="myIframe" > 
    <input type="submit" name="1" value="YES" /> 
    <input type="submit" name="1" value="NO" /> 
</form> 

<iframe name="myIframe"> 
</iframe> 
+0

그 덕분에, 고마워. – lonewulf

+0

도움이 되었으니 기쁩니다 :) – Bogdan

2
<?php 

if(isset($_POST['1'])){ 
    echo ($_POST['1'] == 'YES') ? 'Good!!!' : 'Try Again!'; 
} 

?> 

<!-- your HTML goes here --> 

당신은 같은 페이지에 HTML과 PHP를 결합 할 수 있습니다.

+0

-1 E_NOTICE 경고가 없으면 차이점이 표시되지 않습니다. -1 적절한 설명이 없으면 – Peter

+0

@PeterSzymkowski 나에게는 이것이 OP가 요구하는 것과 같습니다. – Kermit

+0

그것은 같은 페이지에 HTML과 PHP를 결합 시켰습니다. 이것은 제가 OP에서 이해 한 것입니다. –

4

적어도 AJAX와 같은 비동기 클라이언트 - 서버 통신 기술이없는 것은 아닙니다. 그렇지 않으면, 다음 사용할 수 있습니다 양식 여는 태그와 같은

<form action="<?php echo $_SERVER['PHP_SELF']; ? method=....>" 

을 다음과 같이 문서의 상단에 PHP 처리 코드를 삽입 :

<?php 
    if(isset($_POST['form_field_name'])){ 
     //process your data here 
?> 

HTML in case of Form filled in goes here 

<?php 
}else{ 
?> 

HTML in case of Form not filled in goes here 

<?php 
    } 
?> 

HTML in any case goes here 

당신은을 변경할 수 있습니다이 방법을 폼이 채워 졌는지 여부에 따라 페이지의 레이아웃. $ _SERVER [ 'PHP_SELF']에는 현재 요청한 페이지에 대한 참조가 들어 있으므로 이름이 바뀌더라도 항상 올바른 페이지로 설정됩니다. 버그 추적을 할 때 시간을 절약 할 수 있습니다.

+1

정보의 깊이에 대해 나는 upvoted했습니다. 나는 폼을 두 번 그리는 코드가 없도록 강력히 제안 할 것이다. 대신에 폼을 항상 표시하고 if 절을 사용하여 폼 태그에 "value ="속성을 추가하십시오. –

0

<html> 
 
<body> 
 
<form method="post" action=""> 
 
<input type="text" maxlength="30" name="nm"> 
 
<input type="email" maxlength="30" name="em"><br> 
 
<input type="checkbox" name="chkbox1" value="male">Male 
 
<input type="checkbox" name="chkbox2" value="male">Male 
 
<input type="checkbox" name="chkbox3" value="male">Male 
 
<input type="checkbox" name="chkbox4" value="male">Male 
 
<input type="checkbox" name="chkbox5" value="male">Male 
 
<input type="Submit" name="submit"> 
 
</form> 
 
</body> 
 
</html> 
 
<?php 
 
if(isset($_POST['submit'])) 
 
{ 
 
echo "Welcome :".$_POST['nm']."<br>"; 
 
echo "Your email Address is: ".$_POST['em']."<br>"; 
 
} 
 
$count=0; 
 
if(isset($_POST['chkbox1'])) 
 
$count++; 
 
if(isset($_POST['chkbox2'])) 
 
$count++; 
 
if(isset($_POST['chkbox3'])) 
 
$count++; 
 
if(isset($_POST['chkbox4'])) 
 
$count++; 
 
if(isset($_POST['chkbox5'])) 
 
$count++; 
 
echo" Number of checkboxes ticked are:".$count; 
 
?>

+0

질문을 다시 읽으면 @zefs에 이미이 문제가 있으며 다른 동작을 원합니다. – danopz

+1

이 코드는 질문에 대답 할 수 있지만 _why_ 및/또는 _how_에 대한 추가 문맥을 에 제공하면 에 대한 대답은 장기적으로 값을 향상시킵니다. 대답을 편집하여 설명을 추가하십시오. –

0

당신은 예를 들어, 같은 페이지에 작업을 설정할 수 있습니다

내가

의 index.php라는 파일 일하고있는 경우가 될 것이다 내 양식 :

<form action="index.php" method="post"> 
    <input type="text" name="Example" placeholder="Enter Text"> 
관련 문제