Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery提交javascript数组的表单_Php_Jquery_Codeigniter - Fatal编程技术网

Php jQuery提交javascript数组的表单

Php jQuery提交javascript数组的表单,php,jquery,codeigniter,Php,Jquery,Codeigniter,好的,基本上我正在尝试提交一个带有一些javascript数组的表单 我希望它采用将数据添加到隐藏字段然后自动发布的形式 然而,我得到了一个奇怪的错误 动态添加的字段不会隐藏,而是显示在屏幕上 代码运行速度非常慢(在本地运行,所以我无法想象为什么) 它没有链接到PHP页面,而是说:到10.0.0.2的连接被中断。(注意:PHP页面是有效的,可以访问其他页面) 在这段代码中,正确答案是javascript数组 $("#questionForm").submit(function(e){

好的,基本上我正在尝试提交一个带有一些javascript数组的表单

我希望它采用将数据添加到隐藏字段然后自动发布的形式

然而,我得到了一个奇怪的错误

  • 动态添加的字段不会隐藏,而是显示在屏幕上

  • 代码运行速度非常慢(在本地运行,所以我无法想象为什么)

  • 它没有链接到PHP页面,而是说:到10.0.0.2的连接被中断。(注意:PHP页面是有效的,可以访问其他页面)

  • 在这段代码中,正确答案是javascript数组

    $("#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');