2012-08-22 4 views
-1

fname, lname 등에 할당 된 값을 가져 오는 데 문제가 있습니다. 이러한 함수는 success 함수가 호출되고 template/orderForm.php에 게시 될 때까지 페이지에 존재하지 않습니다. 예를 들어 console.log(fname)이라면 빈 필드가 생깁니다.자바 스크립트 값이 할당되지 않았습니다.

가장 먼저 일어나는 일은 로그인 버튼에있는 것입니다. phpscripts/login.php를 통해 데이터베이스에 대한 정보를 확인하고, 성공하면 다른 페이지에 게시하여 이름과 같은 양식 데이터를 가져옵니다. PHP 에코로 자동 채워집니다.

$("#loginSubmit").click(function() { 
    var username = $("#username").val(); 
    var password = $("#password").val(); 
    $.ajax({ 
    type: "POST", 
    url: "phpscripts/login.php", 
    dataType: 'text', 
    data: { 
     username: username, 
     password: password 
    }, 
    success: function(data){ 
     if(data == 'worked') { 
     $("#loginForm").hide(500); 
     $("#loginBtn").hide(500); 
     $("#registerBtn").hide(500); 
     $("#forgotPasswordBtn").hide(500); 
     $.post('template/orderForm.php', function(data) { 
      $('#approveData').html(data); 
      $("#updateInfo").click(function() { 
      var fname = $('#fname').attr('value'); 
      var lname = $('#lname').attr('value'); 
      var address = $('#address').attr('value'); 
      var city = $('#city').attr('value'); 
      var state = $('#state').attr('value'); 
      var zip = $('#zip').attr('value'); 
      var phone = $('#phone').attr('value'); 
      console.log(fname); 
      $.ajax({ 
       type: "POST", 
       //change to update script that is in myaccount.php 
       url: "phpscripts/update.php", 
       data: { 
       fname: fname, 
       lname: lname, 
       address: address, 
       city: city, 
       state: state, 
       zip: zip, 
       phone: phone 
       }, 
       success: function(){ 
       //do nothing 
       } 

      }); 
      }); 
     }); 


     } 
     else { 

     } 
    } 

    }); 
}); 
+0

$ ('# fname'). val()을 사용하지 않는 이유가 있습니까? 그 updateInfo 클릭 리스너에서? (btw도 html을 보는 것을 도울 것입니다.) –

+0

팁 : 다른 것이 없으면'else'가 필요 없습니다 ... – elclanrs

+0

문제를 발견했습니다. fname, lname 등 여러 개의 ID가 있습니다. 이 페이지는 PHP가 여러 개 포함되어 있기 때문에 처음에는 보지 못했습니다. – Jeff

답변

1

것은 $('#fname').val() 대신 $('#fname').attr('value'), 다른 사람과 같은보십시오.

이 행 :

$('#approveData').html(data); 

이 FNAME의 id를 가진 요소를 수용하여 HTML을 포함

+0

나는 $ ('# fname') .val()와 $ ('# fname')로 시도했다. prop ('value') – Jeff

+0

@Jeff 값에 접근하려면'.val 입력을 사용하더라도 'value'속성의 내용은 변경되지 않습니다. – xdazz

0

내가 지금 여기에 귀하의 HTML에 무슨 일이 일어나고 있는지 모르는 내 추측.

$("#updateInfo").click(function() { ... }); 

이 있어야한다 :

$("#updateInfo").live('click', function() { ... }); 

을 그리고 준비가 문 또는 뭔가 외부 될

이 JS. 다른 청취자의 결과 내에서 정의되지 않았습니다. http://api.jquery.com/live/

그것은 새로 기본적인 리스너대로 FNAME 요소가 귀하의 요청에 의해 작성하지 않을 경우 제공하는 DOM 요소를 삽입 레지스터 - 가정을, 그래서 소리하지 않습니다

이 링크는 .live 설명 내가 틀렸다면.

+0

'.click (function() {})'과'.on ('click', function() {}) 구문은 동일합니다. '.on()'의 다른 문법 중 하나에 대해 위임 된 이벤트 처리를 권하고 싶습니까? – nnnnnn

+0

당신이 맞습니다. 지금 정확히 리콜 중이라면 - .live는 클릭이 자동으로 '클릭'으로 변환되기 때문에 언급 한 것입니다. 그러나 OP는 그가 해결 했으므로 이제는 이것을 가정합니다. 부적절한 –

+0

'.live()'는 더 이상 사용되지 않습니다 -'.on()'은 올바른 파라미터를 넘겨 주면'.live()'와 똑같은 일을 할 수 있습니다. – nnnnnn

관련 문제