发送多个输入作为单独的POST-PHP

时间:2019-07-12 21:11:07

标签: php mysql ajax post

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

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

由于这个原因,我创建了另一个名为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;
  }
}

0 个答案:

没有答案