Php jQuery提交javascript数组的表单
好的,基本上我正在尝试提交一个带有一些javascript数组的表单 我希望它采用将数据添加到隐藏字段然后自动发布的形式 然而,我得到了一个奇怪的错误Php jQuery提交javascript数组的表单,php,jquery,codeigniter,Php,Jquery,Codeigniter,好的,基本上我正在尝试提交一个带有一些javascript数组的表单 我希望它采用将数据添加到隐藏字段然后自动发布的形式 然而,我得到了一个奇怪的错误 动态添加的字段不会隐藏,而是显示在屏幕上 代码运行速度非常慢(在本地运行,所以我无法想象为什么) 它没有链接到PHP页面,而是说:到10.0.0.2的连接被中断。(注意:PHP页面是有效的,可以访问其他页面) 在这段代码中,正确答案是javascript数组 $("#questionForm").submit(function(e){
$("#questionForm").submit(function(e){
e.preventDefault();
var cform = $('<form></form>');
cform.attr("method", "post");
cform.attr("action"," <?php echo base_url()?>index.php/TestMaker/endTest");
var cfield = $('<input></input>');
cfield.attr("type", "hidden");
cfield.attr("name", "correct");
cfield.attr("value", correct);
cform.append(cfield);
cfield=$('<input></input>');
cfield.attr("type","hidden");
cfield.attr("name", "answers");
cfield.attr("value", answers);
cform.append(cfield);
$(document.body).append(cform);
cform.submit();
});
您错误地访问了$\u POST数组,在PHP中访问数组的正确方法是使用方括号
[]
,如下所示:
$correct_arr = $_POST['correct'];
另外,如果您使用CI,有一个包装$\u POST数组的方法非常有用,可以这样使用:
$correct_arr = $this->input->post('correct');
我认为您的输入没有隐藏的原因是您修改了附加它的变量,但html尚未生成。不要重新分配
字段
,而是尝试创建一个新的变量。生成的代码是什么,在基本url()调用和索引之间可能缺少一个/
?第一个输入实际上是隐藏的,但您忘了将第二个输入的类型
设置为隐藏的
。关于表单的提交,如@jaudette所说,检查生成了什么URL。端点适用于GET
,而不适用于POST
?据我所知,如果没有丢失服务器端代码,这个问题不会出现在第二个输入字段仍然失败的任何地方,它应该是“隐藏”
,而不是隐藏
。关于你的另一个问题,正如@Alexander所说的,服务器端代码会有很大帮助。不错。真不敢相信我错过了。但是为什么连接到URL时会出现错误呢?我的意思是PHP错误或CI错误不会出现吗?是的,PHP错误应该会出现,我不知道为什么它不会出现。
$correct_arr = $this->input->post('correct');