-1

などに割り当てられた値の取得に問題がfnameあります。lname成功関数が呼び出されてに投稿されるまで、これらはページに存在しません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);

fnameのIDを持つ要素を格納するhtmlが含まれています。

このjs:

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

これである必要があります:

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

そして、準備ができた声明か何かで外に出てください。別のリスナーの結果内では定義されていません。

このリンクは.liveについて説明しています:http: //api.jquery.com/live/

新しく挿入されたdom要素を登録しますが、指定した基本的なリスナーは、fname要素が要求によって書き込まれた場合はそうではありません-仮定です。ここで間違っていても大声で叫ばないでください。

于 2012-08-22T03:48:48.340 に答える