访问URL时,Codeigniter提交表单

时间:2016-04-27 06:09:31

标签: javascript php jquery forms codeigniter

当我点击提交按钮时,我有一个完美的表单。 我想要的是,如果我在URL中添加参数,它会在访问URL时自动提交表单。

我的表单如下:

preventInlining = true

如果我手动填写字段并提交,则可以。现在我可以输入此URL并通过URL中的参数填充字段,但我也希望它自动提交,而不点击提交按钮。

自动填充字段的示例网址:https://test.ch/admin/user/insert/John/Lennon

有可能吗?用JQuery可能吗?

2 个答案:

答案 0 :(得分:0)

  • 检查网址参数是否存在
  • 如果是,假设表单填充了来自url的数据,请使用jquery
  • 提交

将此代码放在结束正文标记

之前
<?php 
if(isset(your_url_parameters)) // check if all parameters exist in url
{ ?>

<script type="text/javascript">
    $( document ).ready(function() {
        $("#form_group_data").submit(); //submit the form
    });
</script>

<?php } ?>

答案 1 :(得分:0)

如果您有能力填写表单 - 您正在设置此网址 - 那么您也可以将此数据发送到已处理表单提交操作的其他网址。因此,在填充数据后,不是试图提交此表单,而是首先使用这些参数将其指向操作URL admin/group/add/other/params/here,并在该控制器中检查这些参数。但是请注意,在这种情况下,您可以侧面执行csrf保护并打开潜在的漏洞。如果您已启用该保护,则最好使用csrf令牌以及要发布的数据发布到此端点。

或者,您可以使用此表单的控制器来检查是否在URL中设置了参数。您应该能够检查参数以及它们是否已设置(如果您要进行验证,则通过验证)执行您通常在表单提交上执行的操作。

if (isset($this->uri->segment(4)) && isset($this->uri->segment(5)) {
    // Do the work here - add to db, etc. Alternatively call the function 
    // that is supposed to do the work and pass these parameters in some way.
    $this->load->model("my_user_model");
    $this->my_user_model->add_user($this->uri->segment(4), $this->uri->segment(5));
    redirect("success/url");
}

这只是一个例子。您需要清理并验证您处理的任何表单数据,因此在这种情况下,my_user_model-&gt; add_user需要这样做,或者理想情况下,您应该在使用CI表单验证库的模型之前执行此操作。

我强烈建议您查看form validation文档,以了解如何使用CI的内置功能处理表单和提交的数据。