2013-07-08 1 views
0

팀 등록 양식을 만들 예정입니다. 필요한 조건은 사용자가 이미 등록되어 있어야하며 팀에 등록 된 구성원 만 선택할 수 있어야한다는 것입니다.해결 방법 : 동적 필드의 여러 이메일 주소를 확인하여 사용자가 이미 존재하는지 확인하는 방법

데이터베이스에 사용자 존재 여부 확인 이메일을 사용하고 있습니다. 형태는 각각의 이메일 필드에 사용자가 입력 아약스 전화를 사용하고 <span class='form_hint'></span>

에 결과를 표시 할 때

내가 모든 사용자의 존재를 확인하는 데 필요한 양식 필드를 추가하는 버튼에 의해 트리거 여러 이메일 필드를 포함

양식은 숨겨진 사업부에 포함되어 colorbox

에 의해 호출되어 있지만 여기 내 html 코드의 어떻게 든

을 작동하지 않습니다

업데이트 :

<?php 
include('connect.php'); 
if(isset($_POST['email'])) 
{ 
$name=$_POST['email']; 
$query=mysql_query("select * from user_details where email='$name'"); 
$row=mysql_num_rows($query); 
if($row==1) 
{ 
echo "Okay Pal!"; 
} 
else 
{ 
echo "User doesn't exist"; 
} 
} 
?> 

내가 오류가 난 동적 필드를 사용하여 구현하고 같이 어디 모른다 : 이제 잘

<!DOCTYPE html> 
<html dir="ltr" lang="en-US"> <head> 
<title>Event Description </title> 

<meta charset="UTF-8"/> 
<!--Colorbox--> 

    <link rel="stylesheet" media="screen" href="colorbox/css/styles.css" > 
    <link rel="stylesheet" media="screen" href="colorbox/css/colorbox.css" > 

<script src="colorbox/js/jquery.min.js"></script> 
<script src="colorbox/js/jquery.colorbox.js"></script> 

<script> 
     $(document).ready(function(){ 
      $(".register").colorbox({inline:true,maxHeight:"95%", maxWidth:"90%"});  
     }); 
</script> 

    <!--Colorbox ends--> 

</head> 
<body> 

<a class="register" href="#register">Event Registeration</a> 


<script type="text/javascript"> 
function usercheck(){ 
$(document).ready(function(){ 
$('input[type="email"]').keyup(function() { 
var name = $(this).val(); 
if(name=="") 
{ 
$(".form_hint").html(""); 
} 
else 
{ 
$.ajax({ 
type: "POST", 
url: "user_check.php", 
data: { email: name } , 
success: function(html){ 
$(".form_hint").html(html); 
} 
}); 
return false; 
} 
}); 
}); 
} 
</script> 

<div style='display:none'> 
    <div id='register' style='padding:10px; background:#fff;'> 
    <center>   
    <form class="contact_form" action="../../register/register.php" method="post" name="contact_form"> 
    <ul> 
     <li> 
      <h2>Registration</h2> 
      <span class="required_notification">* Denotes Required Field</span> 
     </li> 

     <li> 
      <label for="email">Email:</label> 
      <input type="email" name="email" placeholder="[email protected]" onkeyup="usercheck();" required /> 
      <span class="form_hint">Proper format "[email protected]"</span> 
     </li> 
     <span id="dynamicInput"></span> 
     <li><input type="button" value="+" onClick="addInput('dynamicInput');"/></li> 
     <li> 

     <button class="submit" type="submit">Register</button></h4> 
     </li> 
    </ul> 
</form></center> 
    </div> 



</div> 





<script type="text/javascript"> 
function addInput(liName){ 
    //var counter=1; 
    var newfield = document.createElement('li'); 
    newfield.innerHTML = "<label for='email'>Email:</label><input type='email' name='email[]' onkeyup="usercheck();" placeholder='[email protected]' /><span class='form_hint'></span>"; 
      document.getElementById(liName).appendChild(newfield); 


} 

</script> 

</body> 
</html> 

PHP 코드 작업은 데이터베이스에서 사용자를 확인 아주 처음이다.

또한 위에서 사용하는 것처럼 여러 이메일 필드를 처리하는 좋은 방법을 알고 싶습니다.

+1

정확히 작동하지 않는 항목은 무엇입니까? 콘솔 또는 로그에서 디버그 메시지가 있습니까? 어디서나 변수를 추적하고 일부 moar 정보를 제공 할 수 있습니다. – DanFromGermany

+0

@DanFromGermany php 에 대한 요청/응답을 보내거나받을 수 있는지는 알 수 없습니다. 확인할 수있는 방법이 있습니다. 그것? –

+0

은 Firebug 또는 Chrome의 통합 디버그 도구를 사용하여 다음과 같이 트래픽을 확인해야합니다. http://i.stack.imgur.com/2ISid.png – DanFromGermany

답변

1

귀하의 IF-Statement을 PHP 코드에서 실행한다고 생각하지 않습니다.

당신은 email -parameter를 확인하고,하지만 아약스 데이터는 data: { email: name }로 변경하는

data: "name="+ name 같은 시도, $('#email[]')가 유효하지 않은 모든 선택의

1

먼저 찾습니다. 이메일 입력에 클래스를 추가하거나이 선택기 $('input[type="email"]')을 사용하여 모든 이메일 필드에 이벤트 처리기를 추가하십시오.

다음 것은 처리기 keyup입니다. 내부 처리기 기능을 사용하면 $(this) 대신 필드를 다시 선택하려고 할 수 있습니다.

마지막으로 데이터 교환 유형으로 JSON을 사용하는 것이 좋습니다. 서버에서 다음과 같은 문자열을 반환합니다 : {registered:true} 및 클라이언트에서 JSON으로 jQuery.ajax JSON에 대한 기능 설정 dataType의 JSON으로 구문 분석합니다.

+0

위의 코드를 업데이트하고 요소를 변경했지만 문제가 여전히 존재하지만 이유를 모르겠습니다. –

0

위의 코드는 이제 완전히 작동합니다. 이전의 첫 번째 필드에서만 함수를 호출하고 php를 통해 확인했습니다. 이를 해결하기 위해, 나는 사용자 상호 작용을 처리하기 위해

function usercheck(){}

을 추가했다.

가 당신에게 모두 감사

<input type='email' name='email[]' onKeyUp='usercheck();'>

쿼리의 결과가 모든 <input type='email'> 필드 <span> 내에서 표시됩니다

그리고 모든 키에

최대 <input type='email'>에 나는대로 usercheck()를 트리거 onkeyup() 기능을 추가 당신의 소중한 응답 :) 당신은 내 하루를 만들었습니다!