我一直试图让这个工作几个小时。
我试图用.textinputclass获取每个输入,将它们组合在一起并通过ajax将它放入数据库。
两个铃声分开工作,我可以得到每个输入并将它们放在我想要的格式中。
我可以使用.post将数据发送到php脚本以将其放入数据库
$(".addSubmit").click(function(){
$('.textinputclass').each(function(){
var textData = $(this).val();
var thisLanguage = $(this).attr('id');
var textData = '[:' + thisLanguage + ']' + textData;
languagearray.push(textData);
});
var nameData = 'test1111';
var textData = languagearray.join('');
var languagearray = [];
var data = {
'name' : nameData,
'text' : textData
};
$.post('../wp-content/plugins/qtranslate-hardcodedtext/additem.php', data, function() {
alert('done!');
});
});
如果我删除.each函数并将文本放在数据数组中,那么.post就可以了。
答案 0 :(得分:2)
我认为你必须创建一个数组languagearray
。
http://jsfiddle.net/FFr5z/
编辑:
var languagearray = [];
$('.textinputclass').each(function(){
var textData = $(this).val();
var thisLanguage = $(this).attr('id');
var textData = '[:' + thisLanguage + ']' + textData;
languagearray.push(textData);
});
答案 1 :(得分:1)
您的问题是languagearray
的定义。
虽然你已经正确地声明了它,但在.each
循环之后
最终结果是languagearray
的声明(但不是初始化)被“提升”到函数的顶部,使其可用在整个范围内,但其初始值仅为undefined
而不是[]
。
由于变量未定义,因此无法在其上调用push
,这在浏览器的JS控制台中应该很明显。