我知道一开始听起来可能很奇怪,但是让我解释一下。
我有一个系统,可以在其中上载一个项目(我有一个表项目),并且每个项目都有多个活动。
由于这个原因,我创建了另一个名为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;
}
}