Este es el codigo PHP utilizado para crear el formulario:
Código PHP:
<?php
echo "<form method='POST' id='QuestionsINF' name='QuestionsINF'>";
$BD = mysql_fetch_array(mysql_query("SELECT * FROM check_list WHERE check_list_id='".$_POST['id']."'"));
while ($SQrow = mysql_fetch_array($SelectQuestions)) {
$QSbd = "check_list_infraestructura_preg".$SQrow['orden'];
echo "<tr>";
echo "<td><b>".$SQrow['orden']."</b></td>";
echo "<td>".$SQrow['pregunta']."</td>";
$DatosPPV = array("SI"=>"SI","NO"=>"NO");
echo "<td><select name='INF-".$SQrow['orden']."' id='INF-".$SQrow['orden']."'>
<option value=''>SELECCIONAR</option>";
foreach($DatosPPV as $indice=>$valor) {
if ($BD[$QSbd] == $valor) {
echo "<option value='".$indice."' selected>".$valor."</option>";
}else {
echo "<option value='".$indice."'>".$valor."</option>";
}
}
echo "</select>";
echo "</td>";
echo "<td>";
$OBbd = "check_list_infraestructura_preg".$SQrow['orden']."_observacion";
echo "<a name='INF".$SQrow['orden']."_ancla' id='INF".$SQrow['orden']."_ancla'></a><textarea name='INF-".$SQrow['orden']."-OBS' id='INF-".$SQrow['orden']."-OBS' cols='70' rows='5'>".$BD[$OBbd]."</textarea>";
////////// AQUI ES DONDE VAN LOS ARCHIVOS ADJUNTOS ///////////
if ($SQrow['adjuntos'] == 'SI') {
echo "Adjuntos:<div id='INF".$SQrow['orden']."_AdjDiv' name='INF".$SQrow['orden']."_AdjDiv' align='center'><div><input type='file' name='INF".$SQrow['orden']."_Adj[]' id='INF".$SQrow['orden']."_Adj[]'></div></div><a id='INF".$SQrow['orden']."_AddCampo' name='INF".$SQrow['orden']."_AddCampo' href='#INF".$SQrow['orden']."_ancla'>Adjuntar Otro</a>";
}
//////////////////////////////////////////////////////////////
echo "</td>";
echo "</tr>";
}
echo "<tr id='Buttons'><td colspan='4'><input type='button' name='Cancel2' id='Cancel2' value='CANCELAR CHECKLIST'>****<input type='submit' name='Next2' id='Next2' value='CONTINUAR - SIGUIENTE'></td></tr>";
echo "</form>";
?>
Código Javascript:
Ver original
$(document).ready(function() { var CountQS = $("#CountQS").val(); $("#QuestionsINF").submit(function(e) { var CQ2; var ArrINFjs = new Array(CountQS); var ArrINFjq = new Array(CountQS); var ArrINFo = new Array(CountQS); for (CQ2=1;CQ2<=CountQS;CQ2++) { ArrINFjs[CQ2] = "INF-"+CQ2; ArrINFjq[CQ2] = $("#INF-"+CQ2).val(); ArrINFo[CQ2] = $("#INF-"+CQ2+"-OBS").val(); if (ArrINFjq[CQ2] == "") { alert("Debe seleccionar una respuesta valida para la pregunta "+CQ2); document.getElementById(ArrINFjs[CQ2]).focus(); return false; } } var inputs = new FormData(this); $.ajax({ type: "POST", url: "includes/AlmacenandoChecklist.php", data: inputs, processData: false, contentType: false, beforeSend: function(){ //imagen de carga $.blockUI({ message: '<h1>Cargando... Porfavor Espere...</h1>', timeout: 2000 }); }, error: function(){ alert("Error petición ajax."); }, success: function(data){ $("#cargando").css("display","table"); $("#DataReady").empty(); $("#DataReady").append(data); } }); e.preventDefault(); }); });
Y este es el script encargado de generar los campos dinamicos para subir archivos:
Código Javascript:
Ver original
$(document).ready(function() { var Inc; var Max = $("#CountQS").val(); var NameCampo = new Array(Max); var IndCampo = new Array(Max); var Etiqueta = new Array(Max); var NameCampo = $("#IDQuestions").val(); for (Inc = 1; Inc <= Max; Inc++) { Etiqueta[Inc] = "#"+NameCampo+Inc+"_AddCampo"; $(Etiqueta[Inc]).AddCampo(Etiqueta[Inc], NameCampo, Inc); } }); jQuery.fn.AddCampo = function(etiqueta, nombreCampo, indice){ $(this).each(function(){ elem = $(this); elem.data("etiqueta",etiqueta); elem.data("nombreCampo",nombreCampo); elem.data("indice",indice); elem.click(function(e){ e.preventDefault(); elem = $(this); etiqueta = elem.data("etiqueta"); nombreCampo = elem.data("nombreCampo"); indice = elem.data("indice"); texto_insertar = '<div name="'+nombreCampo+indice+'_nDiv" id="'+nombreCampo+indice+'_nDiv"><hr width="50%"><input type="file" name="'+nombreCampo+indice+'_Adj[]" id="'+nombreCampo+indice+'_Adj[]"><a href="'+nombreCampo+indice+'_ancla" class="eliminar"> Borrar</a></div>'; indice ++; elem.data("indice",indice); nuevo_campo = $(texto_insertar); elem.before(nuevo_campo); }); }); $("body").on("click",".eliminar", function(e){ $(this).parent('div').remove(); return false; }); return this; }
En el archivo que lee los datos enviados ("AlmacenandoChecklist.php") solo tengo print_r($_FILES); para visualizar todos los archivos que me envie el formulario.
Bueno antemano muchas gracias a los que se tomen la molestia de leer ^^ espero encontrar el problema, e intentado de muchas formas y aun no se en que fallo :S