Hola!
Estoy intentando guardar los datos de un formulario común y corriente, solo que hay 2 datos que vienen de MySql usando Ajax.
formulario.php
Cita: <input name="txtCodigoPostal" type="text" class="FormsInputs" id="txtCodigoPostal" size="5" />
<a href="javascript:codigoPostal();">Llenar datos</a></td>
</tr>
<tr>
<th colspan="2" valign="middle" bgcolor="#CCCCCC">COLONIA / DELEGACIÓN</th>
<td align="left" valign="middle"><div id="divColonias">
<select name="selColonia" class="FormsInputs" id="selColonia">
<option value="no-save">Escriba el Código postal</option>
</select>
<select name="selDelegacion" class="FormsInputs" id="selDelegacion">
<option value="-1" selected="selected">Escriba el Código postal</option>
</select>
</div></td>
Al dar clic en "Llenar datos" se ejecuta la función codigoPostal() ubicada en:
GeneraColonias.js
Cita: function objetoAjax(){
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch (E){
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function codigoPostal(){
divResultado = document.getElementById('divColonias');
txtCodigoPostal = document.getElementById('txtCodigoPostal').value; //region
//referencia el objeto ajax, damos el metodo del objeto y el archivo
ajax = objetoAjax();
ajax.open("POST", "GeneraColonias.php", true);
ajax.onreadystatechange = function(){
if (ajax.readyState==4){
divResultado.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviamos el valor correspondiente al archivo anteriormente referenciado
ajax.send("txtCodigoPostal="+txtCodigoPostal)
}
En formulario.php hay un div llamado "divColonias", al ejecutar la función, el contenido del mismo se sustituye por el contenido de:
GeneraColonias.php
Código PHP:
<?php
include("../cf/Connections/cf_manual_cp.php");
$txtCodigoPostal=$_REQUEST['txtCodigoPostal'];
$sql = mysql_query("SELECT * FROM Asentamiento WHERE codigoPostal LIKE '$txtCodigoPostal%' order by asentamientoNombre",$cn);
$sql2 = mysql_query("SELECT * FROM Asentamiento WHERE codigoPostal LIKE '$txtCodigoPostal%' order by asentamientoNombre",$cn);
?>
<select name="selColonia" id="selColonia" class="FormsInputs">
<?php
while ($damefila=mysql_fetch_array($sql))
{
?>
<option value="<?php echo $damefila['id_asentamiento']; ?>"><?php echo htmlentities (trim($damefila['asentamientoTipo'])); ?> <?php echo htmlentities (trim($damefila['asentamientoNombre'])); ?> no guarda.</option>
<?php }?>
</select>
<select name="selDelegacion" id="selDelegacion" class="FormsInputs" >
<?php
while ($damefila=mysql_fetch_array($sql2))
{
?>
<option value="<?php echo $damefila['id_asentamiento']; ?>"><?php echo htmlentities (trim($damefila['AsentamientoDelegacion'])); ?></option>
<?php }?>
</select>
Hasta aquí todo funciona a la perfección, se despliegan los nombres de colonia y delegación perfectamente, el problema es que cuando guardo el formulario en MySql no se guardan los datos en la base. Cabe mencionar que el formulario es de casi 50 campos, todos los demás se guardan perfectamente pero los provenientes del Ajax No.
Gracias por su valiosa ayuda!