我有一个表单,您可以在其中输入数据并将数据保存到数据库中。如果您愿意,可以添加更多这些表单集,并且通过使用id_count设置每个输入框来实现此功能。我通过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
在某个地方是一件事而在另一个地方,那么我可能会得到相互冲突的身份。我如何设置我在ajax函数中为id_count
设置的值,当我附加表单时,它的主要值。我怎么能这样做?
很抱歉,如果这篇文章很长或者这是一个愚蠢的问题。
答案 0 :(得分:0)
在表单中创建一个input元素,并将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');
答案 1 :(得分:0)
你知道吗,我自己解决了!
我所做的就是从我在函数中声明var
时删除id_count
。我还删除了文档开头的var id_count = 1;
。这解决了我的问题,使count_id全局化了!