2016-11-28 4 views
2

[送信]ボタンをクリックすると、値yearendを受け取ることができません。代わりに、私は未定義の値を得ました。送信ボタンをクリックすると、どのようにyearend値を取得できますか?送信ボタンの下でajaxデータ変数を使用する方法

マイコード:

$("#company").change(function() { 

    $("#dFrom").val(""); 
    $("#dTo").val(""); 
    var pass_code = $("#company").val(); 
    var callpage = "dentrycomp.php?pass_code=" + pass_code 
    var yearend= null; 
    $.ajax({ 
     type: "GET", 
     url: callpage, 
     async: false, 
     success: function(data) { 
      yearend= data, 
      $("#content").html("") 
      $("#content").html(data) 
     } 
    }); 
    //var yearend = "<?php echo $_SESSION['yearend'] ; ?>" 
    alert(yearend +"company"); 
    this alert box getting the right value yearend.i want that value recieve in under submit button       
    return true; 
}); 


$('#submit').live('click',function() { 
//var yearend = "<?php echo $_SESSION['yearend'] ; ?>" 
alert("this is submit button"+yearend); 
+0

あなたがこの上で手の込んだことはできますか?コメントされた文がどこにあるのか、これが正確なコードが実行されている場所で実行していますか? –

答えて

2
var yearend = null; 

$("#company").change(function() { 

    $("#dFrom").val(""); 
    $("#dTo").val(""); 
    var pass_code = $("#company").val(); 
    var callpage = "dentrycomp.php?pass_code=" + pass_code 

    $.ajax({ 
     type: "GET", 
     url: callpage, 
     async: false, 
     success: function(data) { 
      yearend = data, 
      $("#content").html("") 
      $("#content").html(data) 
     } 
    }); 

    //var yearend = "<?php echo $_SESSION['yearend'] ; ?>" 
    alert(yearend + "company"); 
    this alert box getting the right value yearend.i want that value recieve in under submit button 
    return true; 
}); 

$('#submit').live('click', function() { 
//var yearend = "<?php echo $_SESSION['yearend'] ; ?>" 
alert("this is submit button" + yearend); }); 

yearendをコードの先頭に、つまりグローバルに宣言する必要があります。

+0

Thanxzの作業中です – faizan

+0

はい回答を入力してくださいryte..thanxz – faizan

1

私はそれが理由のvarスコープのだと思います。リクエストの前に変数を定義し、それを再定義してAJAXリクエストの後に取得する必要があります。

0

これは、あなたのajaxコールの外にあるajaxの予想される動作です。yearnedundefinedです。クリック機能をajax呼び出し自体に入れてください。だから、あなたのAjaxコールが終了して成功すると、イベントリスナーをsuccess関数にアタッチします。代わりに、このロジックを使用します。

$.ajax({ 
           type: "GET", 
           url: callpage, 
           async: false, 
           success: function(data) { 
           yearend= data, 
           $("#content").html("") 
           $("#content").html(data) 
           $('#submit').live('click',function(){ 
           //var yearend = "<?php echo $_SESSION['yearend'] ; ?>" 

           alert("this is submit button"+yearend); 
           }); 

           } 


          }); 
1
<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $.ajax({ 
           type: "GET", 
           url: callpage, 
           async: false, 
           success: function(data) { 
           yearend= data, 
           $("#content").html("") 
           $("#content").html(data) 
           $('#submit').live('click',function(){ 

           alert("this is submit button"+yearend); 
           }); 

           } 

          }); 
}); 
</script> 
</head> 
<body> 

</body> 
</html> 
+0

FYI、.live()メソッドは非推奨です –

関連する問題