2013-08-19 3 views
0

등록 페이지를 설정하고 비어있는 양식에 대해 지금 수표를 추가하고 있습니다. 여기 PHP로 페이지에 새 요소 추가

내가 이름의 양식이있는 HTML이다 :

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
</div> 

그리고 PHP 내가 가진 :

$username = $_POST['username']; 

if(empty($username)) { 
    // todo 
} 

내가 할 수있는 PHP의 " 할 일"부분에 필요한 무엇 다음과 같이 HTML의 입력 양식에 새 줄을 추가하는 것입니다.

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
    <div class="form-warning">This username is already taken!</div> 
</div> 

어떻게하면됩니까?

답변

2

당신은 HTML inot 직접 PHP를 포함 할 수 있습니다 Ajax 체크를 사용하는 것입니다 ....

당신이 jQuery를 사용하는 경우

는 다음이 deuplicates를 확인합니다 서버 처리 스크립트를 가정

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
    <div class="form-warning">This username is already taken!</div> 
</div> 

<scrip type="text/javascript"> 
$(document).ready(function(){ 
    $(input[name=username]).change(function(){ 
     $.post(
       'your-sever-process-link', 
       { username : $(this).val()}, 
       function(res) : { $(this).parent().childrens('.form-warning').html(res.message) }, 
       'json' 
     ); 
    }); 
}); 
</script> 

JS 및 JSON 인코딩 된 값을 전송 사용합니다.

또한 ajax 유효성 검사 처리가 더 나은 UX를 만듭니다. https://github.com/posabsolute/jQuery-Validation-Engine을 사용할 수 있습니다. 그것의 쉬운 좋은.

+0

작은 따옴표에 +1하고 실제로'$ _POST [ 'username']' – Phil

+0

을 검사합니다. 거기서 양식을 처리하고 있기 때문에 모든 PHP를 별도의 파일로 원한다면 어떻게됩니까? –

+0

이 코드를 사용하면 양식에 아무 것도 입력하지 않아도 양식 경고 클래스가 표시됩니다 (기본적으로 있음). 뭐가 문제 야? –

0

희망이 도움이됩니다.

$username = $_POST['username']; 

if(empty($username)) { 
    echo "<div class=\"form-warning\">This username is already taken!</div>"; 
} 
+0

가 왜 문자열을 작은 따옴표를 사용하지? 그렇다면 HTML 속성에 큰 따옴표를 사용하지 않아도됩니다. 또한 체크되지 않은 배열 인덱스 – Phil

0

다음과 같이 할 수 있습니다.

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
    <?php echo $errorDiv; ?> 
</div> 

및 PHP 점검 용.

<?php 

    $username = $_POST['username']; 
    ?> 
    <label>Username</label> 
    <div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
<?php 
    if(!empty($_POST) && empty($username)) { 
    <div class="form-warning">This username is already taken!</div> 
    } 
?> 
</div> 

건배

+0

을 페이지 시작 부분에'$ errorDiv'로 놓고 공백 값을'error div html' 코드로 바꾸면됩니다. –

-1

: 당신이 <?php?> 태그를 사용하는 경우

$errorDiv = ""; 
if(empty($username)) { 
    $errorDiv = "<div class=\"form-warning\">This username is already taken!</div>"; 
} 
-1

가장 좋은 방법은이 친구를 시도

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
<?php 
    if (empty($_POST['username'])) { 
     echo '<div class="form-warning">This username is already taken!</div>'; 
    } 
?> 
</div> 
0

옵션이 있습니다. 또 다른 방법은 html에 변수를 클래스 이름으로 추가하는 것입니다.

CSS :

.show_warning { 
    display: block; 
} 

.hide_warning { 
    display: none; 
} 

PHP :

if(empty($username)){ 
     $username_warning = "show_warning"; 
    } else { 
    $username_warning = "hide_warning"; 
    } 

HTML + PHP

<label>Username</label> 
<div class="form-group"> 
    <input name="username" maxlength="25" class="span-default" type="text" placeholder="Choose a username"> 
    <div class="form-warning <?php echo $username_warning;?>">This username is already taken!</div> 
</div> 

은 $ 사용자 이름이 비어있는 경우, 당신은 클래스 "show_warning"를 추가합니다. 이 클래스를 다른 변수에 쉽게 추가하고 다른 필드와 통합 할 수 있습니다.

PHP :

if(empty($phonenumber)) 
    $phone_warning = "show_warning"; 
else 
    $phone_warning = "hide_warning";