Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Javascript 当';document.formname.submit()';用于提交表单_Javascript_Php_Jquery_Html_Codeigniter - Fatal编程技术网

Javascript 当';document.formname.submit()';用于提交表单

Javascript 当';document.formname.submit()';用于提交表单,javascript,php,jquery,html,codeigniter,Javascript,Php,Jquery,Html,Codeigniter,我正在尝试使用javascript提交一个带有链接(代替表单按钮)的html表单。 这是我的密码 <?php echo form_open('controller/method', 'id=formid', 'name=formname'); echo form_hidden('uniqval', 'somevalue'); //here some value is the actual string that //n

我正在尝试使用javascript提交一个带有链接(代替表单按钮)的html表单。 这是我的密码

<?php
echo form_open('controller/method', 'id=formid', 'name=formname');
echo form_hidden('uniqval', 'somevalue');  //here some value is the actual string that
                                   //needs to be passed to the controller's function                              
?>
<a href="link/controller/method" onclick="handler();">Submit</a> 
<?php echo form_close();  ?>
你应该形成_close()是一回事;然后将“控制器/方法”更改为实际的控制器和方法名称


由于您的锚标记不是真正的锚,href=“#”

您的代码(在php、html和JS中)存在一些问题

PHP:

  • 您必须使用
    表单关闭()关闭表单

  • form\u close()
    接受属性作为数组格式,这就是为什么表单名称丢失,javascript无法找到要提交的表单的原因

    <?php
        echo form_open('controller/method', array('id'=>'formid', 'name'=>'formname'));
        echo form_hidden('hidden', 'somevalue');  
        echo form_close();    
    ?>
    
Javascript:

  • 无需通过javascript传递隐藏值。所以,我去掉了那条线

    <script type="text/javascript">
        function handler()
        {      
            document.formname.submit();
        }
    </script>
    
    
    函数处理程序()
    {      
    document.formname.submit();
    }
    
现在表单提交将起作用,您可以使用
$this->input->post(“somevalue”)
捕获值


希望这有帮助:)

谢谢。我的代码中有一个表单_close()。关于controller/method,我有一个形式为_open()的实际controller函数,对于href,我给出了完整的链接,如href=“www.example.com/controller/function”,它不能与href=“#”一起使用。无论如何,它调用了正确的函数。但唯一的问题是隐藏的表单数据没有传递给控制器方法;在IJas上调试psuedo代码版本非常困难。我试过这个,但不起作用。我想我已经很接近了。使用href=“javascript:void(0)”,它只是进入一个空白页面,它没有调用正确的方法,除非我给出href的完整url。我已经在帖子中更新了我的代码。请你再看一看。检查这行
echo form\u open('controller/method','id=formid','name=formname'),这是错误的。检查我的线路。它应该类似于
echo form_open('controller/method',array('id'=>'formid','name'=>'formname')应该在数组中传递表单属性。如果没有它,javascript将无法找到要提交的表单。我在答覆中已提及这点。同时将
href
保留为我的。否则它会将您重定向到您提供的url,不会提交表单。希望我说清楚了,谢谢。它起作用了。但是,当我这样做的时候,它会在一个奇特的框弹出窗口中打开页面,这就是为什么我使用一个链接来提交而不是表单提交(),它在我纠正错误之前在一个奇特的框中打开,你指出。如果你和其他插件一起使用,请保留链接。默认情况下,插件应该停止重定向。
<a href="javascript:void(0)" onclick="handler();">Submit</a> 
<script type="text/javascript">
    function handler()
    {      
        document.formname.submit();
    }
</script>