2010-11-28 3 views
0

GET 또는 POST 또는 REQUEST를 사용하지 않고 html 텍스트 필드의 값을 얻을 수있는 방법이 있습니까? 또는 같은 양식이나 페이지에서 필드 값을 가져올 수있는 방법이 있습니까?PHP Javascript 변수 도움말

이 값은 "james", "system"등과 같은 직접 값과 함께 사용됩니다.

<input type = "submit" onclick = " 
<?php $username = "kut"; 
$result = checkname($username); 
if($result) 
{ 
?> alert("success"); <?php 
} 
else {?> alert("failed"); <?php 
}?> 
"> 

어떻게 내가 ID = "사용자 이름"텍스트 필드의 값에 "KUT"를 대체 할 수있는 유일한 문제는 내가 그것을 HTML 필드 값

처럼 작동해야합니까 어떻게?

<?php $username = "?>document.getElementById('username').value;<?php"?> 

또는 이와 비슷한 것 ... ??? 요컨대

는, I는 자바 스크립트 함수 내 동일한 페이지) (상기 javascriptFunction처럼 ... PHP를 사용하여, 함수

+2

GET 또는 POST (또는 어떤 동사)가 발생하지 않는 한 서버가 실행되지 않습니다. 여기서 무엇을하려고합니까? –

+1

제출하기 전에 텍스트 입력란 값을 확인하려고합니까? 당신이 아약스 전화를하려고하는 것처럼 들립니다. – kjy112

+0

좋아요 ... 그래서 ... PHP를 통해 데이터베이스에 접속하기 위해 자바 스크립트를 사용하고 값이 존재하는지 확인한 다음 그 결과를 다시 자바 스크립트로 보냅니다. 권리? – JAL

답변

0

1> I 제안 그 밖에 HTML 필드의 값을 얻을 필요 jQuery를 사용하여 Ajax 부분을 처리한다. PHP는 측면

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
    function check_user(){ 
     var user_el=document.getElementById('username'); 
     if(!user_el){ return false; } 
     var username=user_el.value; // this could all be replaced with $('username').val() 
     $.getJSON('check_var.php',{"user":username},function(data){ 
      if(data.result=='error'){ alert('something was wrong with the PHP stuff'); } 
      alert(data.userstatus); 
      }); 
     } 
</script> 

2> check_var.php대로, 사용자 이름 입력을 취하는 DB를 체크하고 JSON 데이터로서 결과를 반송한다 스크립트가 필요하다.

<?php 
if(!isset($_GET['user']){ exit; } 

$username=preg_replace('#['^\w\d]#','',$_POST['user']); 

//do your database query. I assume you have that part all set. 
//since I'm not filling in all of that, you'll need to fix this next part to work with your system 
//let's pretend it's like $found=check_user($username); 
//be sure to use mysql_real_escape_string or prepared statements on the $username var since you're working with user input 

$status=$some_db_error ? 'error' : 'success'; 

$results=array('result'=>$status,'userstatus'=>$found); 
header('Content-Type: application/json'); 
echo json_encode($results); 
+0

@ ALEX JL : 전체 db 코드를 준비했지만 편집 한 질문에서 작업을 수행해야합니다. – Kut

+0

@ ALEX JL : 편집 된 질문의 작업은 "james", "system"등과 같은 직접적인 값으로 작동합니다. 유일한 문제는 어떻게 내가 html로 작동하게 만들 수 있습니까? 필드 값 – Kut

+0

나는 당신이 무슨 뜻인지 정말로 모르겠다. 사용자가 입력 한 것과 같이 페이지가로드 될 때 준비되지 않은 값을 처리하려는 경우 페이지를 다시로드하지 않으려면 Ajax를 사용해야합니다. – JAL

1

JavaScript에서는 PHP 함수를 직접 호출 할 수 없습니다. echo을 통해 페이지가로드되기 전에 PHP에서 JavaScript 값을 설정할 수 있습니다. PHP는 서버에서 실행되는 반면 JavaScript는 클라이언트 측에서 실행됩니다.

2

클라이언트 - 서버 아키텍처 작동 방식에 대한 근본적인 오해가 있습니다.

PHP는 자바 스크립트가있는 곳이나 없을 때 수천 마일 떨어진 곳에서도, 심지어 며칠 떨어져서도 실행될 수 있습니다.

첫 번째 PHP는 전체 페이지, HTML 전체, 모든 JavaScript 소스 코드 (실행되지 않음)를 생성 한 다음 PHP가 완료되고 브라우저가 실행되면 JavaScript가 실행되기 시작합니다.

이 두 가지는 원하는대로 혼합 할 수 없습니다 (PHP 소스 코드 에서처럼 보일지도 모름).

AJAX 또는 이와 유사한 방법을 사용하여 서버와 다시 통신 할 수는 있지만 클라이언트 - 서버 아키텍처가 어떻게 작동하는지 이해하고 AJAX없이 문제를 해결해야합니다 (예 : 서버 쪽에서 모든 것을 처리하거나 클라이언트 측면).