2012-08-16 4 views
-5

사용자 입력에 따라 컨트롤을 사용하고 싶습니다. 사용자가 예를 클릭하면 숨기려고합니다. 숨겨져 있습니다 .. 그래서 함수와 할당 된 값을 기반으로합니다. 내가 컨트롤을 표시하도록 .. PHP 함수를 호출하고 PHP 함수 내에서 전역 변수를 사용합니다.

당신은 응을 통해 PHP 함수를 직접 호출 할 수 없습니다

<input type="radio" name="twelthStudiedStatus" value="no" id="twelthStudiedStatus_1" checked onClick= <? $hscEnable=HSControl("no"); ?> > 

    <? if($hscEnable=="true"){ ?> 
    <tr> 
    <td>Percentage :</td> 
    <td><input type="text" name="twelthPercentage" /></td> 
    </tr> 
    <? } ?> 
+2

PHP - 서버 측, HTML/JS - 클라이언트 측 .. –

+0

당신이 조금 더 설명 할 수?! 정확히 무엇을 원하니? 너 뭐 해봤 니? – tuxtimo

+0

'return ("true")'나를 이상하게 보입니다. – Leri

답변

0
<script type="text/javascript"> 
    function HSControl(value) { 
     document.getElementById("twelthPercentage").style.display = (value == 'no') ? "none" : "block"; 
    } 
</script> 
<input type="radio" name="twelthStudiedStatus" value="no" id="twelthStudiedStatus_1" checked onClick=HSControl('no')> 
<input type="radio" name="twelthStudiedStatus" value="yes" id="twelthStudiedStatus_1" onClick=HSControl('yes')> 
<tr> 
    <td>Percentage :</td> 
    <td><input type="text" id="twelthPercentage" name="twelthPercentage" hidden/></td> 
</tr> 
2

나는 HTML 폼에서 호출 한

<? 
$hscEnable="false"; 
function HSControl($val) 
{ 
    if($val=="yes") 
    { 
     return("true"); 
    } 
    else 
    { 
     return("false");  
    } 
} 
?> 

PHP 함수입니다 vaScript는 PHP가 서버에 있고 JavaScript가 웹 페이지가 호출 된 클라이언트에 있기 때문에 발생합니다. Ajax을 사용하여이 문제를 해결할 수 있습니다. 또는 컨트롤을 비활성화하거나 활성화하려면 PHP 대신 JavaScript를 직접 사용할 수 있습니다!

Ajax를 사용하지 않으면 서버 요청없이 PHP를 실행할 수 없습니다. 따라서 또 다른 해결책은 전체 페이지를 새로 고침하고 새 컨트롤을 사용하여 PHP를 통해 클라이언트로 새 페이지를 보낼 수 있습니다! "서버, 자바 스크립트 : PHP 클라이언트"이 이미지에서

찾는 위치의 논리를 이해하는 당신은 AJAX를 사용하여 서버 측 함수를 호출 할 수 있습니다 enter image description here

관련 문제