el titulo si va de acuerdo a lo q deseo preguntar, no mas q es larga la historia, espero de verdad tengan tiempo para leer......
Bueno tengo una duda q me ha estado quebrando la cabeza, tengo un form donde registro un proyecto, en dicho form puedo asignar alumnos, asesores externos y asesores internos.
mi problema esta con los asesores; por ejemplo, supongamos q el maestro (q un maestro es un asesor interno) con idCat 45 se asigna al proyecto, recibo el 45 por un input y se carga el maestro a traves de AJAX por cada maestro asignado cargo 3 inputs, dos tipo hidden ( uno para el contador de asesores y el otro q lleva su value=45) y un tercer input tipo text para anotar el area q asesorara que en este ejemplo como es asesor interno se llamara id y name = areaint1.
el problema principal es la validacion de si esta vacio ese campo, esta es mi funcion para validar el form, PERO CLARO, el explorer no lo hace.
Código HTML:
function verifEmpre(formulario,a) { if(formulario.categoria.value==0){alert("Selecciona una categoria.");return;} if(formulario.subcategoria.value==0){alert("Selecciona una subcategoria.");return;} if(vacio(formulario.empresa)){alert("Escribe el nombre que tendra la Empresa.");return;} if(vacio(formulario.giro)){alert("Escribe el giro de la Empresa.");return;} if(vacio(formulario.producto)){alert("Escribe el producto que vendera la Empresa.");return;} if(vacio(formulario.sede)){alert("Escribe la sede donde se llevara a cabo el Evento de Emprendedor.");return;} if(vacio(formulario.objetivo)){alert("Escribe el objetivo general de la Empresa.");return;} if(typeof externo1!='undefined') { if(formulario.areaext1.value==""){alert("Escribe el área que asesorará el primer Asesor Externo.");return;} } if(typeof externo2!='undefined') { if(formulario.areaext2.value==""){alert("Escribe el área que asesorará el segundo Asesor Externo.");return;} } if(typeof asesor1!='undefined') { if(formulario.areaint1.value==""){alert("Escribe el área que asesorará el primer Asesor Interno.");return;} } if(typeof asesor2!='undefined') { if(formulario.areaint2.value==""){alert("Escribe el área que asesorará el segundo Asesor Interno.");return;} } formulario.action="guardar-empre.php?guarda="+a; formulario.submit(); }
En vista de q mi funcion no jala para explorer intente hacer q en el script q guardar el form de dicho proyecto "guardar-empre.php" cheque si esta o no vacio mi input tipo text del area del asesor y si es asi q regrese al form.
claro se q no debo validar del lado del servidor pero...la desesperacion ya saben....
Código PHP:
if($_GET['guarda']==1)
{
$cate = $_POST['categoria'];
$subcate = $_POST['subcategoria'];
$nombre = $_POST['empresa'] ;
$giro = $_POST['giro'];
$produc = $_POST['producto'];
$lugar = $_POST['sede'];
$fecha_sede = $_POST['anio']."-".$_POST['mes']."-".$_POST['dia'];
$obj = $_POST['objetivo'];
$fase = 1;
$dateactual = date("Y-m-d");
$cont = $_POST['contador'];
$cont2 = $_POST['contador2'];
$cont3 = $_POST['contador3'];
if(isset($cont3))
{
switch($cont3)
{
case 1:
if($_POST['areaext1']=="")
{
echo "<script>alert('Escribe el area del primer Asesor Externo.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
break;
case 2:
if($_POST['areaext1']=="")
{
echo "<script>alert('Escribe el area del primer Asesor Externo.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
if($_POST['areaext2']=="")
{
echo "<script>alert('Escribe el area del segundo Asesor Externo.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
break;
}
}
if(isset($cont2))
{
switch($cont2)
{
case 1:
if($_POST['areaint1']=="")
{
echo "<script>alert('Escribe el area del primer Asesor Interno.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
break;
case 2:
if($_POST['areaint1']=="")
{
echo "<script>alert('Escribe el area del primer Asesor Interno.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
if($_POST['areaint2']=="")
{
echo "<script>alert('Escribe el area del segundo Asesor Interno.');</script>";
echo "<script>location.href='javascript:history.go(-1)';</script>";
}
break;
}
}
else
//Verificamos que no existe una Empresa con el mismo nombre.
$consulta = "SELECT nom_empresa FROM proyecto_empre WHERE nom_empresa='$nombre'";
$resultado = mysql_query($consulta);
$row = mysql_fetch_row($resultado);
if(!$row)
{
$mysql = "INSERT INTO proyecto_empre (iddpto,idcategoria,id_subcat,nom_empresa,giro,producto) VALUES('".$_SESSION['user']."','$cate','$subcate','$nombre','$giro', '$produc')";
$result = mysql_query($mysql,$db) or die(mysql_error("Error al guardar los datos de emprendedores."));
$query = "SELECT MAX(idemprendedor) as 'maxid' FROM proyecto_empre";
$resultado = mysql_query($query,$db);
$fila = mysql_fetch_array($resultado);
$mysql = "INSERT INTO details_empre (idemprendedor,fecha_reg,lugar_sede,fecha_sede,objetivo,lugar,fase) VALUES('".$fila['maxid']."','$dateactual','$lugar','$fecha_sede','$obj','$lugar','$fase')";
$result = mysql_query($mysql,$db) or die(mysql_error("Error al guardar los datos en la tabla detalles_empre"));
$query = "SELECT MAX(iddetails) as 'maxid' FROM details_empre";
$resultado = mysql_query($query,$db);
$fila2 = mysql_fetch_array($resultado);
//GUARDAMOS EN LA TABLA EMPRE_ALUMNO
for($x=1; $x<=$cont; $x++)
{
$var = 'alumno'.$x;
$alum = $_POST[$var];
$mysql = "INSERT INTO empre_alumno (idemprendedor,NoControl) VALUES(".$fila['maxid'].",'".$alum."')";
$result = mysql_query($mysql,$db);
}
//GUARDAMOS EN LA TABLA EMPRE_EXTERNO
for($y=1; $y<=$cont2; $y++)
{
$var2 = 'asesor'.$y;
$cat = $_POST[$var2];
$mysql = "INSERT INTO empre_interno (idemprendedor,idCat,area) VALUES(".$fila['maxid'].",'".$cat."','".$_POST['areaint'.$y]."')";
$result = mysql_query($mysql,$db);
}
//GUARDAMOS EN LA TABLA EMPRE_INTERNO
for($y=1; $y<=$cont3; $y++)
{
$var2 = 'externo'.$y;
$cat = $_POST[$var2];
$mysql = "INSERT INTO empre_externo (idemprendedor,numcontrol,area) VALUES(".$fila['maxid'].",'".$cat."','".$_POST['areaext'.$y]."')";
$result = mysql_query($mysql,$db);
}
$_SESSION['iddetalles'] = $fila2['maxid'];
echo "<script> location.href='altaempre_2.php'</script>";
}
else
{
echo"<script>alert(\"El Título de la Empresa ya existe!\")</script>";
echo"<script>location.href='altaempre.php'</script>";
}
}
pero no continua con el formulario, algo pasa cuando entra al segundo if de $cont2, esto pasa cuando agrego dos asesores externos y dos internos y la validacion se pierde con el ultimo asesor, se queda en blanco la pag, no marca error y no guarda.
en vista de q no pude con ninguna de las dos formas, no se q estoy haciendo mal, tambien me comentaron y he visto en una revista de users.code como funciona exactamente el constructor del objeto XHMLHttp de AJAX
PREGUNTAS:
¿¿¿puedo utilizar ese constructor del ajax para concocer q navegador uso y dependiendo de eso, utilizo la primera fiuncion q he escrito arriba??
¿¿¿seria algo asi??? ¿¿¿¿es correcto???
Código HTML:
function crearObjetoXMLHttp() { if(typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if (window.ActiveXObject) { var mtVersion = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"]; for (var i=0; i< mtVersion.length;i++) { try { var objXmlHttp = new ActiveXObject(mtVersion[i]); return objXmlHttp; } catch(objError){ } } } throw new Error("El objeto XMLHttp no pudo crearse."); } <br> <br> var objajax = crearObjetoXMLHttp(); alert(objajax); if(objajax=="[object]") alert("EL NAVEGADOR ES EXPLORER");
y por utlimo
¿¿¿que hay de utilizar otro script??? he visto en las FAQS q tienen un en php,
que hago??? algun comentario, ayuda, lo q sea!!, estoy mal en mi funcion?? lo hago por ajax?? estoy mal en la validacion donde guardo???
de antemano gracias por tomarse el tiempo de leer.