-1

我在获取为 等分配的值时遇到问题fnamelname这些在页面上不存在,直到调用成功函数并将其发布到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 {

      }
    }

  });
});
4

2 回答 2

1

尝试$('#fname').val()代替$('#fname').attr('value'),和其他人一样。

于 2012-08-22T03:38:23.847 回答
0

我不知道您的 HTML 发生了什么,所以这是我的猜测:

这一行:

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

包含您的 html,其中包含 id 为 fname 的元素。

这个js:

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

应该是这样的:

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

并在外面准备好声明或其他东西。未在另一个侦听器的结果中定义。

这个链接解释了.live: http ://api.jquery.com/live/

它注册新插入的 dom 元素,作为您提供的基本侦听器,如果 fname 元素是由您的请求写入的 - 假设,所以如果我在这里错了,请不要大喊大叫。

于 2012-08-22T03:48:48.340 回答