2016-03-04 82 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');