2014-07-16 2 views
0

이것은 this question의 후속 사례입니다.양식이 제출 된 경우에만 jScript/AJAX를 사용하여 PHP 스크립트를 호출하십시오.

이 코드를 가지고 :

$pass1 = trim($_POST['pass1']); 
if(!isset($pass1)||empty($pass1)) die('empty pass1'); 

내 문제는 (I 양식 준비와 검증하지 않는 것이) 처음 :

var chpass = function() 
{ 
    var pass1 = encodeURIComponent($("#pass1").val()); 
    var pass2 = encodeURIComponent($("#pass2").val()); 
    $.ajax(
    { 
     type: "POST", 
     url: "lib_ajax/somescript.php", 
     data: "pass1="+ pass1+"&pass2="+ pass2, 
     success: function(msg_pass) 
     { 
      $("#status_pass").ajaxComplete(function(event, request, settings) 
      { 
       if(msg_pass == 'empty pass1') 
       { 
        $("#pass1").removeClass('green'); 
        $("#pass1").addClass("red"); 
       } 
      }); 
     } 
    }); 
} 
$("#signup").ready(chpass); 
$("#signup").change(chpass); 

그리고 PHP 스크립트에서

페이지는로드되지만 제출 후 페이지가로드 될 때마다로드됩니다.

나는 처리기에 대한 기본 이벤트를 설정하고 preventDefault를 사용하는 방법을 알아 내려고 노력했지만 지금까지 완전히 실패했습니다.

페이지를 제출할 때 일부 유효성 검사가 서버에서 발생하며 어떤 경우에는 헤더 ('위치 :')를 사용하여 페이지를 다시로드 할 수 있습니까?

어떻게 해결할 수 있을까요? 어쩌면

if (FORM IS SUBMITED) $("#signup").ready(chpass); 

또는 : 같은으로 변경할 수있는 방법이 있나요

if (FORM IS SUBMITED && msg_pass == 'empty pass1') 
    { 
     $("#pass1").removeClass('green'); 
     $("#pass1").addClass("red"); 
    } 

도 내가 변경하려고 것을 추가 할 수 준비() 행운()로 제출 :

$("#signup").submit(chpass); // DO NOT WORK 

답변

0

마지막으로 해결책을 찾았습니다. 코드를 변경합니다

$("#signup").ready(chpass); 

에 : 양식이 제출되지 않는 한

<?php if(isset($_POST['submit'])) { ?>$("#signup").ready(chpass);<?php } ?> 

과의 JScript의 일부가 탈락입니다!

관련 문제