Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2008, 10:08
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
recuperar id de combo

Hola , tengo un problema, cuando grabo un formulario que tiene combos y uso el metodo de ajax los valores que me muestran en mi BD siempre es 0, pero cuando uso el simple metodo post y el action a otra pagina me graba normalmente los id del combox:

este el formulario en el que tiene el combo:

Código PHP:
<form name="frmanuncio" id="frmanuncio" onSubmit="enviaEmpresa(); return false">

$datos=mysql_query("select * from categoria");
echo 
"<select name='lcategoria' id='lcategoria' onChange='cargaContenido(this.id)'>";
echo 
"<option value='0'>Selecciona Categoria...</option>";
while(
$fila=mysql_fetch_row($datos)){
    echo 
"<option value='".$fila[0]."'>".$fila[1]."</option>";
}
</
form></div
ahora esta es la funcion ajax que uso para validar que el combo se seleccione(supongo que ahi es el problema donde el id se vuelve 0)

Código:
var c = document.getElementById('empresa_registro');
var categoria = document.frmanuncio.lcategoria.value;

if(categoria == 0){
alert('Seleccione la categoria de su empresa.');
  document.frmanuncio.lcategoria.focus();
  return false;
}

ajax=nuevoAjax();
c.innerHTML = '<p style="text-align:center;color:#454545; font-size:10px">Registrando...<br><img src="images/sending.gif" width="16" height="16" align="absmiddle"></p>';
ajax.open("POST", "ajax_anuncio_new.php",true);
ajax.onreadystatechange=function(){
  if (ajax.readyState==4) {
	c.innerHTML = ajax.responseText
  }
}
ajax.send("categoria="+categoria+"&control=enviado");
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
y Aqui es donde grabo mi formulario con eld ato que envio

Código PHP:
if(isset($_POST['control'])){
    
$categoria $_POST['lcategoria'];
            
//Registrando mensaje en la base de datos
$sql="call registra_empresa('$nombre','$direccion','$telefono','$telefono2','$email','$website','$descripcion','0','$fecha_enviobd','0000-00-00','img','$categoria','$subcategoria','$codcliente')";
$clase->ejecutarProc($sql);
        
$return_msg "Su informaci&oacute;n ha sido grabada exitosamente.";
die(
"<p><table width=\"200\" border=\"0\" cellpadding=\"6\" cellspacing=\"1\"><tr><td height=\"44\"><div align=\"center\" style=\"text-align:center;color:#454545; font-size:10px\">".$return_msg."</div></td></tr></table></p>");    

Donde pierdo el valor de id del combobox? bueno no lo pierdo, sino que se me cambia a 0 cada vez que grabo.