2011-02-07 10 views
2

내 코드에서POST 값이 자바 스크립트에 표시되지 않습니다.

<script type="text/javascript"> 
function getValue() 
{ 
    console.log("<?php echo $_POST['input_value'] ; ?>") ; 
    return false ; 
} 
</script> 

<form id="request_form" action="" name="request_form" method="POST" > 
    <input id="input_value" type="text" size="45" name="input_value"></br> 
    <button class="button" id="btForm" onclick="return getValue()" >submit</button> 
</form> 

내가 넣어 어떤 값을 인쇄 할 것으로 기대하지만 아무것도 보여줍니다. 무엇이 잘못 되었나요?

+2

PHP가 서버에서 실행되면 클라이언트의 자바 스크립트 ... – knittl

답변

3

PHP는 서버 측이며 페이지가 브라우저에로드되기 전에 완료됩니다. 처음로드 될 때 그 당시에는 $_POST이 없기 때문에 로그는 비어 있습니다.

양식을 제출할 때 텍스트가없는 console.log 함수를 호출 한 다음 FALSE를 반환하므로 양식이 실제로 제출되지 않습니다.

양식 태그에 action 속성을 설정하여 $_POST 데이터를 처리하는 PHP 페이지를 가리 키거나 양식을 게시하려면 AJAX를 사용해야합니다.

0

자바 스크립트에서 실제 서버 측 코드를 작성할 수 없으며 클라이언트 측에서 실행되도록 기대할 수 없습니다.

0
 
function getValue() { 
    console.log(document.request_form.input_value.value) ; 
    return false ; 
} 

는 JS (클라이언트 측)에 getValue()를 실행 갔지 순간, 감각을 가질 수있다 - PHP (서버 측) 그래서 에코 할 수있는 방법을 포함되지되지 $ _POST ....

4

양식이 실제로 PHP 페이지에 제출되지 않습니다. 그것은 getValue를 호출하는 것입니다. getValue는 아직 아무것도 가지지 않습니다.

당신이하려는 일에는 두 가지 반쪽이 있으며, 당신이 실수를 저질렀습니다. 첫 번째는 PHP가 포함 된 서버 측입니다. 당신이 양식을 제출하면, 당신은 사용해야합니다

<input type=submit value="Submit" /> 

이 페이지를 새로 고침 PHP를 사용하여 POST 값을 읽어의 나머지와 함께 밖으로 다시 인쇄 할 수있는, (양식 작업이 비어 있기 때문에) 그 페이지. 페이지로드가 완료되면 PHP는 더 이상 관련되지 않으며 동작에 영향을 미치지 않습니다. 당신이 당신의 페이지를로드 할 때

은 당신이 지금 그것을 가지고, 그것은 다음과 같습니다에서 POST 값이 페이지가로드 처음이 아니었다 때문에

<script type="text/javascript"> 
function getValue() 
{ 
    console.log("") ; 
    return false ; 
} 
</script> 

, 브라우저로 전송 자바 스크립트가 보인다 그처럼 - 인쇄 할 가치가 없습니다. 버튼을 클릭하면 여기에 나타나는대로 getValue()가 실행됩니다.

+0

@Rocket 편집 해 주셔서 감사합니다. 뭔가 이상하게 보입니다. – Tesserex

+0

No prob. StackOverflow는 HTML 태그를 제거하므로 코드 블록에 넣어야합니다. –

+0

@Rocket 그래, 내 오타 알아. – Tesserex

관련 문제