注意:这个问题是从post中分离出来的: jQuery没有处理由jQuery创建的元素
我通过每秒调用的ajax调用动态地将列表项添加到jQuery中的列表中。
下面是ajax调用的代码。
$.ajax({ url: 'php/update_group_list.php', data: '', dataType: 'json', success: function(data) { var id = data.instructor_id; group_cnt = data.group_cnt, group_name = data.group_name, group_code = data.group_code; for (i = current_row; i < group_cnt; i++) { //setInterval(function() { $('#group-list-div').load('php/group_list.php'); }, 5000); $('#group-list').append(""+group_name[i]+" "); $('#delete-group-list').append(""); } current_row = i; $('#group-list').listview('refresh'); $('#delete-group-list').trigger('create'); } });
当我尝试发送复选框的表单数据时(在上面的ajax调用代码中引用行$(’#delete-group-list’)。blah … blah)post返回错误意外令牌<
我究竟做错了什么? 我认为这两个问题是相关的,因为我正在创建动态使用的列表项。
这是与问题相关的额外代码
HTML:
JS代码
$('#delete-group-form').submit(function(e) { e.preventDefault(); alert($('#delete-group-form').serialize()); if ($('#delete-group-form').serialize() == "") { alert('No groups selected to be deleted.') return false; } else if ($('#delete-groups-form').serialize() == null) { alert('No groups selected to be deleted.') return false; } else { $.post('php/delete_groups.php',$('#delete-groups-form').serialize()).done(function(data) { obj = jQuery.parseJSON(data); var group_codes = obj.group_list; alert(group_codes); alert("The selected groups have been deleted"); window.setTimeout(2000); return false; }); } return false; });
delete_groups.php
$group_codes); //creating an array of data to be sent back to js file echo json_encode($items); //sending data back through json encoding ?>
我认为第二个问题的根源是行$ group_codes = $ _POST [‘groups’]; 特别是$ _POST [‘groups’]因为当我用$ group_codes =’test’替换它时; (仅用于调试目的),代码按预期工作。
好吧,以前我认为php文件的内容类型标题的错误仍然存在(你需要指定用jQuery JSON解析的头类型)。 但又发现了一个错误,我认为问题的原因。
你希望序列化的forms是
$('#delete-groups-form').serialize()
您可以看到ID的差异。 这将返回一个空对象,在php文件中它需要一个从不存在的名为groups
的索引。 因此,它将返回一个未定义的索引错误作为以开头的html内容类型,该JSON解析器返回带有
unexpected token <
的错误unexpected token <
希望这可以帮助
当你拨打$_POST['groups'];
(在你的delete_groups.php中)它查找从表单元素发送的具有属性name="groups"
,但是你的delete-group-form没有任何这样的元素。
“ error unexpected token <
”消息可能来自单独的问题。 validationHTML可能会揭示问题。
另外,我并不完全清楚你为什么要使用两个独立的函数(JS中的$ .post和$ .ajax)。 除非发生了其他事情,否则我无法从您发布的代码中看到,只需使用一次调用ajax就可以大大简化它。 将一个调用放入$('#delete-group-form').submit(function(e)
代替$.post
,并使用ajax
调用的数据参数传递groups
变量。修改delete_groups.php返回必要的信息(当前从update_group_list.php返回)以更新页面上的显示。
需要了解更多jQuery教程分享JQuerypost没有处理动态jQuery元素,都可以关注jQuery技术分享栏目---计算机技术网(www.ctvol.com)!
以上就是jQuery教程分享JQuerypost没有处理动态jQuery元素相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/981146.html