我正在尝试使用php和javascript填充数组。 Onclick,我将一个php变量传递给一个名为addToGroup的函数。此函数是一个java脚本函数,它将传递的var添加到javascript数组中。查看建议时,您可以看到数组在点击时填充,但是当我检查它时,大小为零。我究竟做错了什么?我将附上我执行此操作的部分代码。如果您需要更多信息,我可以提供更多代码。如果你发现任何错误,请告诉我!非常感谢你
echo "<br>";
echo '<form>';
echo '<input type="text" name="user" placeholder="enter name" />';
echo '<button type="button" onclick="addToGroup(\'' . $groupName . '\', this.form.user.value)" />Add</button>';
echo '<button type="button" onclick="removeFromGroup(\'' . $groupName . '\', this.form.user.value)" />Remove</button>';
echo '</form>';
echo "<br><br>";
}
echo '<form>';
echo '<button type="button" onclick="submitChanges()" />Log</button>';
echo '</form>';
} else {
echo 'authentication failed.';
exit;
}
?>
<script>
var groupChangesAdd = new Array();
var groupChangesRemove = new Array();
function addToGroup(groupName, user) {
if (groupChangesAdd[groupName] === undefined) {
groupChangesAdd[groupName] = user;
console.debug(user);
$('#groupChangesPlus'+groupName).html('+ ' + user + '<br>');
} else {
groupChangesAdd[groupName] = groupChangesAdd[groupName] + ', ' + user;
$('#groupChangesPlus'+groupName).html($('#groupChangesPlus'+groupName).htm l() + '+ ' + user + '<br>');
}
console.debug(groupChangesAdd);
}
答案 0 :(得分:0)
所以你使用你的数组作为关联数组(或对象),因此“。length”不会对它们起作用。如果您想查看“groupChangesAdd”中是否包含某些内容,您可以将其记录到开发人员控制台,并在那里进行检查,或者您可以使用:
var groups = Object.getOwnPropertyNames(groupChangesAdd);
console.log(groups.length - 1);
有趣的是,“长度”确实作为Object的属性存在,它总是返回0.这就是我从groups.length中删除1的原因。
希望这有帮助!