2010-07-24 4 views
0

데모 http://jquery.bassistance.de/validate/demo/marketo/을 따르고 동일한 원격 유효성 검사 기능을 달성하기 위해 몇 가지 문제를 만났습니다.왜 원격 유효성 검사가 작동하지 않습니까?

다음은 사용 된 HTML입니다. 여기

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2000/REC-xhtml1-200000126/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<title>Subscription Signup | Marketo</title> 
<!--http://jquery.bassistance.de/validate/demo/marketo/--> 
<link rel="stylesheet" type="text/css" media="screen" href="css/stylesheet.css" /> 
<script type="text/javascript" src="js/jquery/jquery-1.4.2.js" ></script> 
<script type="text/javascript" src="js/jquery/jquery.validate.js"></script> 
<script type="text/javascript"> 

$(document).ready(function(){ 

$("#profileForm").validate({ 
    invalidHandler: function(e, validator) { 
    var errors = validator.numberOfInvalids(); 
    if (errors) { 
    var message = errors == 1 
    ? 'You missed 1 field. It has been highlighted below' 
    : 'You missed ' + errors + ' fields. They have been highlighted below'; 
    $("div.error span").html(message); 
    $("div.error").show(); 
    } else { 
    $("div.error").hide(); 
    } 
    }, 
    onkeyup: false, 
    submitHandler: function() { 
    $("div.error").hide(); 
    alert("submit! use link below to go to the other step"); 
    }, 
    messages: { 
    password2: { 
    required: " ", 
    equalTo: "Please enter the same password as above" 
    }, 
    email: { 
    required: " ", 
    email: "Please enter a valid email address, example: [email protected]", 
    remote: jQuery.validator.format("{0} is already taken, please enter a different address.") 
    } 
    }, 
    debug:true 
}); 

}); 

</script> 
</head> 
<body> 
<div> 
<form id="profileForm" action="" method="POST" > 
    <div class="error" style="display:none;"> 
    <img src="images/warning.gif" alt="Warning!" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " /> 
    <span></span>.<br clear="all"/> 
    </div> 
    <table cellpadding="0" cellspacing="0" border="0"> 
    <tr> 
    <td colspan="2"><h2 style="border-bottom: 1px solid #CCCCCC;">Login Information</h2></td> 
    </tr> 
    <tr> 
    <td class="label"><label for="email">Email:</label></td> 
    <td class="field"><input id="email" class="required email" remote="emails.php" maxlength="40" name="email" size="20" type="text" tabindex="11" value="" /></td> 
    </tr> 
    <tr> 
    <td class="label"><label for="password1">Password:</label></td> 
    <td class="field"><input id="password1" class="required password" maxlength="40" name="password1" size="20" type="password" tabindex="12" value="" /></td> 
    </tr> 
    <tr> 
    <td class="label"><label for="password2">Retype Password:</label></td> 
    <td class="field"><input id="password2" class="required" equalTo="#password1" maxlength="40" name="password2" size="20" type="password" tabindex="13" value="" /> 
    <div class="formError"></div></td> 
    </tr> 
    <tr> 
    <td></td> 
    <td><div class="buttonSubmit"> 
     <input class="formButton" type="submit" value="Next" style="width: 140px" tabindex="14" /> 
    </div></td> 
    </tr> 
    </table> 
</form> 
</div> 
</body> 
</html> 

는 PHP 스크립트입니다 :

PARAM : 이메일 글렌

<?php 

$request = trim(strtolower($_REQUEST['value'])); 
$emails = array('[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]'); 
$valid = 'true'; 
foreach($emails as $email) { 
if(strtolower($email) == $request) 
    $valid = 'false'; 
} 
echo $valid; 
?> 

내가 [email protected]를 입력 한 다음 탭을 클릭, 나는 filebug을 통해 다음과 같은 오류 메시지를 발견 @ marketo.com 응답 :
알림 : 정의되지 않은 변수 : 요청은 C : \ wamp \ www \ ajax_login_ 라인에서 검증 \의 emails.php4

공지 사항 : 정의되지 않은 인덱스 : C의 값 : \ WAMP \ www가 \ ajax_login_validation \ 5
본선에
emails.php

$ _REQUEST [ 'value']에 불만이있는 것 같습니다.

이 문제를 어떻게 해결할 수 있습니까?

많은 감사

+0

해야한다. –

답변

3

그것은 $_REQUEST['email'] 대신 당신이 거기가 꽤 테이블의 $_REQUEST['value']

+1

이유에 대한 설명 :'$ _REQUEST [ 'value']''name' 속성이 'value' 인 양식 입력 요소를 찾습니다. 이것은 존재하지 않습니다 (이것이 귀하가 그 통지를받는 이유입니다). 양식 입력 요소가'email'의'name' 속성을 가지고 있기 때문에 PHP 스크립트를'email' (여기에 제시된대로)을 사용하도록 변경하거나 양식 입력 요소를'value'라는 이름으로 변경할 수 있습니다. –

관련 문제