首页 > 解决方案 > 通过ajax将多个文本框中的数据插入sql

问题描述

不确定执行此操作的最佳方法。

在我的页面上,我有以下内容(从用户设置的数据库中提取自定义问题列表)

显示问题/求职信文本区域的 PHP 页面

    $questions = $this->db->get_where("applicationquestions", 
    ["opportunity_id" => $contact->id]);
        $questionsfound = $questions->num_rows();
        $questions = $questions->result();


<? foreach ($question as $q):?>
<div class="form-group">
<label for="<?echo $q->id;?>" class="control-label"><? echo $q->label;? 
>:</label>
<input type="text" class="form-control" id="<?echo $q->id;?>" name="<?echo $q->id;?>">
</div>
<?endforeach;?>

并使用 ajax / javascript 我通过 POST 传递信息

** JS ** $("#apply").click(function(e) { e.preventDefault();

  var oppid = "<?echo $opportunity->id;?>";


                    $.ajax({
                            url: 
  "https://MYSITEHERE/submitapplication",
                            method: "POST",
                            data: {oppid:oppid}}); });

我想知道的是通过这种方法将问题 id 和用户回答插入我的数据库的最佳方法。

**提交申请文件/功能**

public function submitapplication() {

$insert['opportunity_id']= $this->input->post('oppid');
$insert['user_id']= is_user_logged_in();
$insert['time']= time();
$insert['coverletter']= $this->input->post('coverletter');
$this->db->insert("applications", $insert);

// 这里我需要它将问题文本框中的答案连同问题 ID 一起提交到表 applicationanswers 中

        }

在 PHP 列出问题字段后显示的 HTML

<form id="applyform" class="">
 <div class="row">
 <div class="col-md-6 col-xs-12">
  <label>Cover Letter</label>
 <textarea class="form-control" id="coverletter" name="coverletter" rows="7" placeholder="Start typing a cover letter"></textarea>

<div class="form-group">
 <label for="1" class="control-label">Have you sold web design before?: 
 </label>
<input type="text" class="form-control" id="1">
                                                    </div>

 <div class="form-group">
 <label for="2" class="control-label">Do you like monkeys?:</label>
<input type="text" class="form-control" id="2">
                                                    </div>




                                                     </div>      </div>    
                                                </form>

标签: javascriptphp

解决方案


如果您在表单中使用多个项目,我建议您使用

var data = $('form').serialize();

这会将所有表单值传递给您的 php 脚本,然后您可以使用 php 插入它们。

$("#apply").click(function(e) {
                e.preventDefault();
var oppid = "<?echo $opportunity->id;?>";

var data = $('form').serialize();
                $.ajax({
                        url: 
 "https://MYSITEHERE/submitapplication",
                        method: "POST",
                        data: {formdata:data}}); });

然后,您只需解析 php 中的数据


推荐阅读