仅在foreach ajax帖子

时间:2018-06-11 18:43:04

标签: php

我目前有一个表单,然后使用javascript / ajax将信息发布到一个函数中,然后将数据插入到我的数据库中。

此刻它插入通过form.serialise传递的所有内容,我希望它能忽略params oppid& coverletter,因为它们通过不同的代码插入单独的表格中。

我的php for insert如下......

    $insert1 = [];

    foreach ($this->input->post() as $k => $v) {

            $insert1['question_id'] = $k;
            $insert1['answer'] = $this->input->post($k, true);

            $this->db->insert("applicationquestionanswers", $insert1);

        }

我的表单通过此javascript发布

$.ajax({ url: "https://XXXXX.com/apicalls/submitapplication",
                        method: "POST",
data: $("#applyform").serialize(),
                            success: function(data) {
                  $( "#applybtn" ).hide();
                $( "#applybtn1" ).show();

目前这些是传递过的值

oppid: 求职信: 1: 2:

表单中包含带有自定义问题的字段,这些文本字段的名称是这些问题的唯一ID,即" 1"是数据库中问题的ID。 ($ k)的

希望这是有道理的,

所以基本上,我想忽略params coverletter和oppid(我的表单上的字段),因为我的代码现在将所有内容都插入到我的表中。

任何想法?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点,一种方法是获取一个帖子变量列表,然后取消设置你不想使用的那些......

$insert1 = [];
$fields = $this->input->post();
// Remove fields not interested in saving
unset ($fields["oppid"]);
unset ($fields["coverletter"]);

foreach ($fields as $k => $v) {
    $insert1['question_id'] = $k;
    $insert1['answer'] = $this->input->post($k, true);

    $this->db->insert("applicationquestionanswers", $insert1);
}