2012-04-02 4 views
0

일부 php 코드를 실행 한 후 요소의 내용을 업데이트하려고합니다. PHP가 처음 실행된다는 것을 알았지 만 페이지를로드하여 요소를 찾을 수 있다고 생각 했습니까? 그러나 innerHTML 코드가 실행되기 전에 페이지가로드되지 않았 음을 콘솔이 null 요소를 찾을 수 없다고 말합니다.innerHTML을 반환하는 PHP

누구나 아이디어가 있으십니까?

else if(strlen($_POST['username']) < 6){ 
    header("Location: http://webpage/register.html"); 
    echo "document.getElementById('elemID').innerHTML = usename too short"; 
} 
+1

afaik 위치가있는 헤더를 설정 한 후에는 아무 것도 울릴 수 없습니다. – k102

답변

5

header() 그러므로 register.html의 내용이 이미 서버에 의해 다르게 처리 될 때 클라이언트에 영향을 없을 것입니다 그 후 아무것도를 출력, 새 위치로 이동 클라이언트를 지시합니다. 대신 PHP를 사용하는 register.html을 변경할 수 있습니다 경우

, 당신은 당신이 정말로 어떤 논리 후가 없어야합니다,

if(!empty($_GET['msg'])) echo $_GET['msg']; 
2

먼저 당신의 register.php에 그런

header("Location: http://webpage/register.php?msg=username%20too%20short"); 

를 전달할 수 귀하의 헤더 위치 리디렉션. 리디렉션 전에 브라우저가 다음 행을 보지 못하도록하는 것처럼 리디렉션 후에 "exit"또는 "die"를 넣는 것이 좋습니다. 사실, 코드를 자주 보지 않을 수도 있습니다. 리디렉션 위하여려고하는 경우에

, 당신의 리디렉션 URL 인수로 오류를 넣어 같은 오류 표시가 논리가 : 당신이 register.php에 그런

header("Location: http://webpage/register.php?error=username%20too%20short"); 

을 (내가 이름 .html에서 오류 인수를 읽을 수 있습니다. 다음과 같이 오류를 참조 할 수 있습니다.

$error = $_GET['error']; 
if (!empty($error)) { 
    //write your error out in some markup or javascript... 
}