2012-02-22 3 views
0

포스트 방법은JQuery와 나는 이름, 암호 및 이메일을 보내는 JQuery와 포스트 방법을

function postData() 
{ 
    thisBtn = $(this); 
    parent = $(this).parent(); 
    name = parent.data('name'); 
    password = parent.data('password'); 
    email =parent.data('email'); 
    $.post('register.php', {name: (name), password: (password), email: (email)},  function(data) ; 
    parent.next('#message').html(data); 
} 

온 클릭 기능을 수행하는 버튼을 register.php하기 버튼이 클릭되었을 때 발생

+0

어떻게 당신이 당신의 onclick 이벤트를 바인딩

<input type='button' class='regular' name='save' id='btnPost' value='Post' /> 

자바 스크립트를? – IanW

+0

버튼 이름 저장 – foshoeiyyy

+1

우선 기본 디버깅부터 시작하십시오. Firebug와 같은 것을 사용하고 코드에 중단 점을 넣으면 실제로 어떤 일이 일어나는지 볼 수 있습니다. (아무 것도 일어나지 않는 것처럼 말하는 것과는 대조적입니다.) 함수가 실제로 호출되는지 여부. 그렇다면 함수의 변수는 무엇으로 설정되어 있습니까? '$ .post()'에 대한 호출까지 도달합니까? 그 당시의 물건의 상태는 무엇입니까?우리가 당신을 도울 수 있도록 여기에 몇 가지 기본적인 디버깅을해야합니다. 그렇지 않으면,이 코드에 너무 많은 잠재적 인 문제가 있습니다. – David

답변

3

postData을 연결된 객체없이 호출하면 함수 this은와 같습니다.그래서 여러분이 접근하는 요소는 여러분이 기대하는 요소가 아닙니다.

intrinsic event attributes을 사용하지 말고 JavaScript를 사용하여 핸들러를 바인딩하십시오. 이미 jQuery를 사용하고 있으므로 the methods it provides for that을 사용해야합니다.

<button onclick='postData(this)' class='regular' name='save'> 

또는 :

+0

모든 솔루션? thanks – foshoeiyyy

+0

업데이트 된 답변보기 – Quentin

+0

메신저 기능이 이름 암호 이메일을 찾을 위치를 알고 있는지 확인 – foshoeiyyy

1

이 구문은

중 하나의 onclick에 전달하고 개체 ...

$.post('register.php', {name: (name), password: (password), email: (email)},  function(data) ; 
    parent.next('#message').html(data); 
// no {} for function, no closing) for $post, and premature ; 

$.post('register.php', {name: (name), password: (password), email: (email)}, function(data) { 
    parent.next('#message').html(data); 
}); 
+0

실제로 "아무 것도 일어나지 않는 것"이 ​​브라우저가 JavaScript 오류를 던지고 OP가 어디에서 찾을지를 알지 못한다는 다른 방법이 있는지 궁금합니다. 그. – David

+1

"parent"는 jQuery 객체가 아니므로 호출 할 next() 함수가 없습니다. (또는 $ (this)는 의미가 없으므로 parent()가 아마도 빈 jQuery 객체가 될 것입니다.) – Dave

+0

그 이유가 아직 작동하지 않습니다. – foshoeiyyy

0

당신은이 옵션을 시도 엉망이 보인다 cl를 붙이다 jQuery를 사용하여 싫어지기 핸들러 - jQuery를 사용하여 선호하는 방법을 :

$('input[name="save"]').click(function() { 
    // your post code here 
}}; 

다음과 같이 포스트 데이터를 보내기 onclick='postData(this)'

0

필요가 없을 것이다 당신이 적절한 출력을 얻을 것이다

이름 = '데모'; password = '123456'; 이메일 = '[email protected]'; //register.php

 $.post('register.php',{ 'name': name, 'password': password, 'email': email},function(html){ 

           alert(html);  
    },"html"); 

은 $ _POST 에코 [ '이름'];

+1

$ .post에 대한 데이터 객체를 만들 때 문자열에 속성 이름을 넣지 않아도됩니다. 그렇지 않으면 이름이 유효한 javascript 변수 이름 (예 : ' 이름 [] ') – Dave

0

제대로 작동하려면 jQuery를 사용하여 단추를 바인딩하십시오. (편집 : 또한,의 비 사용되지 않는 요소를 사용하자) :

$(document).ready(function() { 
    $("#btnPost").on("click", function() { 
     var thisBtn = $(this); 
     var parent = thisBtn.parent(); 
     // Replacing this by serializing the parent form - 
     // not sure what parent.data is going to give without seeing the rest 
     // of the html 
     // name = parent.data('name'); 
     // password = parent.data('password'); 
     // email =parent.data('email'); 
     $.post('register.php', thisBtn.closest("form").serialize(),   
      function(data) { 
       parent.next('#message').html(data); 
      }); 
     }); 
    }); 
}); 
0

당신이 시도 할 수 :

$(document).ready(function(){ 
    var $this = $('id_of_button'); 
    $this.click(function(){ 
      //ajax logic here 
      $.ajax({ 
       type: 'POST', 
       url: url, 
       data: data,//data to send to serverside 
       success: success, //function to call on success 
       dataType: dataType//datatype eg.text,json etc. 
      }); 
    }); 
});