2016-03-04 62 views
0

我有一個表單,您可以在其中輸入數據並將數據保存到數據庫中。如果你願意,你可以添加更多這些表單集合,並且這可以通過使用id_count設置每個輸入框來工作。我通過Jquery完成所有操作,並附加額外的表單。儘管所有這些表單都在一個表單標籤下。所以它看起來是這樣的,當有人增加了額外的形式:在Jquery中創建一個全局變量值

<form> 
    <div class="fieldsetOriginal"> 
    </div> 
    <div class="fieldset_1> 
    </div> 
    <div class="fieldset_2"> 
    </div> 
</form> 

在我取回了一組從數據庫中值,並使用PHP將它們發送到jQuery的那一刻,我做這個取回數據:

success: function(data) { 
    if (data['error']) { 
    alert(data['error']); 
    } else { 
    var response = JSON.parse(data); 
    var x; 
    var id_count = response.length; 
    for (x = 0; x < response.length; ++x) { 
     var my_obj = response[x]; 
     console.log(my_obj.name); 
     console.log(my_obj.gender); 
     console.log(my_obj.date); 
     console.log(my_obj.relationship); 
     $j('#name1').val(my_obj.name); 
     alert(id_count); 

     id_count++; 
    } 

    } 
}, 

jQuery中我也是在頁面開始設置var id_count = 1;所以變量是全球性的。我使用$j的原因是因爲我在Magento中使用$j = $.noConflict();,所以必須在noConflict模式下使用Jquery。

但是,這個問題的問題是,我在ajax函數中設置的id_count的值不是全局的。這很重要,因爲如果id_count是某個地方和另一個地方的其中一個地方,那麼我可能會遇到衝突的ID。我如何設置我在我的ajax函數中爲id_count設置的值,它是我追加表單時的主要價值。我怎樣才能做到這一點?

對不起,如果這篇文章真的很長,或者這是一個愚蠢的問題。

+0

如果你把這個id_count的值隱藏在某些輸入類型=「隱藏」中? – mvalho

回答

0

只要你知道,我固定它自己!

我所做的只是從我在函數中聲明id_count時刪除了var。我還在文檔的開頭刪除了var id_count = 1;。這然後解決了我的問題,並使count_id全局!

0

在窗體中創建一個輸入元素,並將count變量賦給隱藏字段。

<input type="hidden" value="" id="hdnCount"/> //Element Creation 


success: function(data) { 
    if (data['error']) { 
    alert(data['error']); 
    } else { 
    var response = JSON.parse(data); 
    var x; 
    var id_count = response.length; 
    for (x = 0; x < response.length; ++x) { 
     var my_obj = response[x]; 
     console.log(my_obj.name); 
     console.log(my_obj.gender); 
     console.log(my_obj.date); 
     console.log(my_obj.relationship); 
     $j('#name1').val(my_obj.name); 
     alert(id_count); 

     id_count++; 
    } 
$('input#hdnCount').val(id_count); 
    } 
}, 

另一種方式

<form> 
    <div class="fieldsetOriginal" data-count=""> //add Data Attribute 
    </div> 
    <div class="fieldset_1> 
    </div> 
    <div class="fieldset_2"> 
    </div> 
</form> 

success: function(data) { 
    if (data['error']) { 
    alert(data['error']); 
    } else { 
    var response = JSON.parse(data); 
    var x; 
    var id_count = response.length; 
    for (x = 0; x < response.length; ++x) { 
     var my_obj = response[x]; 
     console.log(my_obj.name); 
     console.log(my_obj.gender); 
     console.log(my_obj.date); 
     console.log(my_obj.relationship); 
     $j('#name1').val(my_obj.name); 
     alert(id_count); 

     id_count++; 
    } 
$('.fieldsetOriginal').data('count',id_count); //Assign value in data Attr 
    } 
}, 

要訪問數據屬性值:

var $val= $('.fieldsetOriginal').data('count');