首页 > 解决方案 > 将多个输入作为单独的 POSTS 发送 - PHP

问题描述

我知道这可能听起来很奇怪,但让我解释一下。

我有一个系统,我可以在其中上传一个项目(我有一个表格项目),每个项目都有多个活动。

出于这个原因,我创建了另一个名为 activity_project 的表,并将表与具有项目 ID 的表 activity_project 中的外键链接。

到这里一切都很好。我将这些字段分为两种形式,第一种捕获有关项目的一般信息,并通过 ajax 我发送如下数据:

    const datosProy = new FormData();
    datosProy.append("lider", liderProy);
    datosProy.append("folio", folioProy);
    datosProy.append("nombre_proyecto", nombreProy);
    datosProy.append("nombre_cliente", nombreClienteProy);
    datosProy.append("id_laboratorio", idLabProy);
    datosProy.append("tipo_proy", idTipoProy);
    datosProy.append("fecha_entrega", fechaEntrega);
    datosProy.append("archivo", archivo);
    datosProy.append("comentarios", comentarios);

    $.ajax({
      url:"ajax-load/proyecto.ajax.php",
      method: "POST",
      data: datosProy,
      cache: false,
      contentType: false,
      processData: false,
      success: function(respuesta) {
        if (respuesta == "error") {
          // Show error
        } else {
          // Say everything's fine
          // Show activities div
        }
      }

我可以发布项目,然后在传递数据之后,我会显示带有其他表单和输入的 div,以便用户可以解释活动是什么。

问题是,正如我所想的那样(如果你知道的话,你可以给我一个更好的方法),每个输入将代表我的 activity_project 表中的一行。所以我想用ajax来做这个,对于每个有一些文本的输入,我会调用ajax函数并将数据上传到我的表

以下是我在表单中输入输入的方式:

      <?php
      for ($i=4; $i < 13; $i++) {
        echo '
          <div id="actividadMedical'.$i.'" class="input-group mb-2 mr-sm-2 divActivOculo">
            <div class="input-group mb-3">
              <div class="input-group-prepend">
                <label for="actividadMedical'.$i.'" class="input-group-text">'.$i.'</label>
              </div>
              <input id_area="'.$idMedical.'" id="actividadMedical'.$i.'" name="actividadMedical'.$i.'" type="text" class="form-control text-center autocompleteMedical" placeholder="Descripción de actividad">
            </div>
          </div>
        ';
      }
      ?>

如您所知,我为用户提供了几个输入,以便他们划分他们的活动(以及希望的想法)。这就是系统的请求方式,但我知道并不总是所有输入都会被填充。

我不太清楚的事情是在提交活动时注册最后一个项目ID(因为那将是我将活动链接到的项目),如果我应该说,有所有这些新活动,迭代并检查它们是否都有一些文本或单独检查,但是每次都会调用 ajax 函数,我不知道这是否是最佳解决方案。

//////////////////////////

更新

//////////////////////////

我修改了一点我的ajax调用,所以当我发布一个项目时,我会取回最后一个id。因此,当有一个新项目时,它会收到该 id,并且在对 activity_project 进行 POST 时不会对项目 id 产生任何混淆,所以现在是这样的:

success: function(respuesta) {
  if (respuesta == "error") {
    // Show error
  } else {
    // Say everything's fine
    // Show activities div
    lastId = respuesta;
  }
}

标签: phpmysqlajaxpost

解决方案


推荐阅读