Javascript 成功时在范围内显示数组字
我有这个代码,它将显示带有复选框的单词。如您所见,它们由逗号分隔,我使用split()函数分解字符串,使其成为一个数组。我使用for循环来迭代单词,但是我得到了单词的“未定义”。它应该自动显示带有复选框的单词,但单词显示为未定义。当我点击refresh时,它会正确显示单词,并且有一个复选框。我不确定问题出在哪里。有什么想法吗Javascript 成功时在范围内显示数组字,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我有这个代码,它将显示带有复选框的单词。如您所见,它们由逗号分隔,我使用split()函数分解字符串,使其成为一个数组。我使用for循环来迭代单词,但是我得到了单词的“未定义”。它应该自动显示带有复选框的单词,但单词显示为未定义。当我点击refresh时,它会正确显示单词,并且有一个复选框。我不确定问题出在哪里。有什么想法吗 $(document).on('click', '#wordlistsave', function() { var user = $("#get
$(document).on('click', '#wordlistsave', function()
{
var user = $("#getUser").val();
var title = $("#wordbanktitle").val();
var word = $("#wordbanklist").val();
var postID = $("#getPostID").val();
var words = word.split(", ");
for(var i = 0; i < words.length; i++)
{
var dataString = 'user='+user+'&title='+title+'&words='+words[i]+'&id='+postID;
<?php if (is_user_logged_in()): ?>
if(words[i])
{
$.ajax({
type: "POST",
url: "<?= plugins_url('wordlistsave.php', __FILE__) ?>",
data: dataString,
cache: true,
success: function(postID)
{
var testBoxDiv = $(document.createElement('div')).attr("id", words[i]);
testBoxDiv.css({"margin-bottom":"5px"});
testBoxDiv.after().html('<span id="'+words[i]+'" style="cursor:pointer">\
<img src="./wp-content/plugins/wordwork/admin/pdfpreview/delete_icon.png" title="Delete word"></span>\
  <input type="checkbox" name="words[]" value="'+ words[i]+ '">'+words[i] );
testBoxDiv.appendTo("#test_container");
}
});
}
<?php else: ?>
alert('Please login.');
<?php endif; ?>
}
});
$(文档)。在('click','#wordlistsave',函数()上
{
var user=$(“#getUser”).val();
var title=$(“#wordbanktitle”).val();
var word=$(“#wordbanklist”).val();
var postID=$(“#getPostID”).val();
var words=单词分割(“,”);
for(var i=0;i
单词可以从success函数中看到,但当它执行时,您无法确定i
值,因为它不会同步执行。
所以,您可以将一个额外的参数words传递给ajax设置字典,并从success函数访问它。像这样:
$.ajax({
type: "POST",
url: "<?=plugins_url('wordlistsave.php', __FILE__ )?>",
data: dataString,
cache: true,
word : words[i],
success: function(postID)
{
var testBoxDiv = $(document.createElement('div')).attr("id", this.word);
testBoxDiv.css({"margin-bottom":"5px"});
testBoxDiv.after().html('<span id="'+this.word+'" style="cursor:pointer"><img src="./wp-content/plugins/wordwork/admin/pdfpreview/delete_icon.png" title="Delete word"></span>  <input type="checkbox" name="words[]" value="'+ this.word+ '">'+this.word );
testBoxDiv.appendTo("#test_container");
}
});
$.ajax({
类型:“POST”,
url:“”,
数据:dataString,
是的,
单词:单词[i],
成功:功能(posted)
{
var testBoxDiv=$(document.createElement('div')).attr(“id”,this.word);
css({“边距底部”:“5px”});
testBoxDiv.after().html('nbsp'+this.word);
testBoxDiv.appendTo(“test#u容器”);
}
});
此外,您不需要为$.ajax构建数据字符串,只需像以下那样传递数据:
$.ajax({
type: "POST",
url: "<?=plugins_url('wordlistsave.php', __FILE__ )?>",
data: {
user: user,
title: title,
words: words[i],
id: postID
}
$.ajax({
类型:“POST”,
url:“”,
数据:{
用户:用户,,
标题:标题,,
字:字[i],
id:posted
}
nice,很好用。我将调整css,因为它在单词上方添加了一个空格。