Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/11/2011, 17:59
leogar07
 
Fecha de Ingreso: noviembre-2011
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta ¿Como tomar mediante PHP el valor de un combo (<select>) que se ha cargado por AJAX?

Quisiera hacerlo sin utilizar jQuery ni XAJAX, lo que intento hacer es simple tengo un combo-box con los países (traídos de una base de datos) y segun la selección del usuario se carga otro con las provincias. Esto lo pude hacer, mi problema es cuando se da submit al formulario guarda en la base de datos el pais pero no la provincia, tambien me ocurre con JavaScript que en el chequeo de si los campos fueron completados (es decir si se eligió un país y una provincia) solo toma en cuenta el pais.
Aquí está lo que escribí en el formulario.php:
<?php
//Primero conexión al servidor y base de datos($conex) y la query que captura los paises($sql)
$res = mysql_query($sql, $conex);
?>
<html>
<head>
<script type="text/javascript">
function CheckForm(){
var campo1= document.getElementById('pais').value;
var campo2=document.getElementById('provinci…
var error= false;
var mensaje = "Atención seleccione: \n";
if(campo1=="0"){
mensaje = mensaje + "País";
error= true;
}
if(campo2=="0"){
mensaje = mensaje + "Provincia";
error=true;
}
if(error){
window.alert(mensaje);
}else{ document.getElementById('paisForm').subm…
}
}

//AJAX para la provincia en
function loadProv(pais){
if(pais=="0"){
document.getElementById('provdiv').inner…
}

if(window.XMLHttpRequest){ //Codigo para IE7+, Firefox, Chrome, Opera, Safari
xmlhttp= new XMLHttpRequest();
}else{ //Codigo para IE6-
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("provdiv").inner…
}
}
xmlhttp.open("GET","provincia.php?pais="… pais, true);
xmlhttp.send();
}

</script>
<body>
<form id="paisForm" action="ingresopais.php" method="POST">
Pais:<select onchange="loadProv(this.value);" name="PAIS" id="pais">
<option value="0">Seleccionar</option>
<?php while($row = mysql_fetch_array($res)){
echo "<option value='$row[idpais]'>$row[Pais]</option>…
} ?>
</select>
Provincia:<div id="provdiv"></div>
<input type="button" value="Ingresar" onclick="CheckForm();" />
</form>

Eso sería el formulario, despues el archivo provincia.php al que recurre el AJAX:
<?php
//Primero conexión al servidor y base de datos($conex)
//Captura del pais elegido
$pais=$_GET["pais"];
//Captura de las provincias del pais elegido($sql)
$res=mysql_query($sql, $conex);

if($row=mysql_fetch_array($res)!=""){
echo "<select id='provincia' name='PROVINCIA'>";
echo "<option value='0'>Seleccionar</option>\n";
while($row=mysql_fetch_array($res)){
echo "<option value= '$row[idProv]'>$row[Provincia]</option>\…
}
echo "</select>\n";
}else{
echo "";
}

?>

Finalmente el archivo ingresopais.php al que envia los datos el formulario:
//Primero conexión al servidor y base de datos($conex)
$pais= $_POST["PAIS"];
$prov= $_POST["PROVINCIA"];
//Y luego el ingreso del pais y provincia elegidos por el usuario en su perfil, el usuario es identificado por una cookie que se le pone al ingresar a su perfil.

En fin eso es lo que tengo, despues de tanta cosa repito mi problema, al dar el submit los datos de la provincia no son capturados y no ingresan en la base de datos, mientras que los del país si lo hacen. Tampoco se chequea si una provincia fue seleccionada en el JavaScript.
Seguramente debe de haber una sencilla forma de hacerlo, ya busque en varios lados y no encontre respuesta.
Desde ya muchas gracias por su tiempo!!!