Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Envio de variable por metodo POST

Estas en el tema de Envio de variable por metodo POST en el foro de Frameworks JS en Foros del Web. Hola a todos Tengo el siguiente problema: Necesito enviar una variable a otro documento PHP donde pueda manipular los valores de los combobox y de ...
  #1 (permalink)  
Antiguo 09/12/2008, 15:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
Envio de variable por metodo POST

Hola a todos

Tengo el siguiente problema:

Necesito enviar una variable a otro documento PHP donde pueda manipular los valores de los combobox y de acuerdo a estos realizar selects, esto se debe hacer sin refrescar la pagina html, debido a esto utilizo ajax pero en todos los tutoriales,manuales o foros aparece la misma forma la cual NO ME FUNCIONA, por favor mirar el codigo y decirme que pasa.......


Aqui esta el codigo php con los combox correspondientes, los cuales son realizados con un select.

Código HTML:
<form  name="DigitaAfiliacion" action="index.php?seccion=CCFORMU" method="POST">
<table  border="3"  align="center">
<tr>
<td>
	<input type="hidden" name="afiliacion" id="afiliacion" value="">
	<table border="0" width="100%">
	<tr  class="TH1">
		<td align="center" colspan="6">
		<br><b>FORMULARIO DE AFILIACIÓN E INSCRIPCIÓN REGIMEN CONTRIBUTIVO</br></td>
	</tr>
	<tr class="TH">
		<td>
			<b>Tipo Cotizante
		</td>
		<td>
                  <-- En el onchange se llama la funcion de javascript o ajax!-->
		<select name="TipoCot" id="idTipoCot" style=width:360px onchange="cargarContenido()">
		<? creacomboxconarray($arTipoCotizante,$caTipoCot,0,1);?>
			</select>
		</td>
                         <-- Aqui aparece los mensajes del innerHTML!-->
		<td class="TH" colspan="2"><div id="idajax"></td>
		</tr>
		<tr class="TH">
		  <td class="bordes">
			<b>Tipo Identificación</div>
		</td>
			<td>
			<select disabled=disabled name="cbTipoId" id="idTipoId"> <?clValidarForma::fnValidarTipoId($arTipoDocumentoAfiliado,$caTipoId);?>
			</select>
		</td>
		<td>
		<b>Número
		</td>
		<td colspan="2">
		<input type="text" name="txtNumero" id="idNumero" value="<?pSession($nuNumeroId);?>">
		</td>
	</tr>
</table>
</form> 

Funcion Ajax

Código:
function Ajax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false;
	try
	{
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			// Creacion del objet AJAX para IE
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}


function cargarContenido(){
	//Div donde estaran los innerHTML
	var SelectOrigen=document.getElementById('idajax');
	// variable para activar un combobox
	var SelectDestino=document.getElementById('idTipoId');
	//Capturo el valor Seleccionado en el combobox
	var Selected=document.getElementById('idTipoCot').options[document.getElementById('idTipoCot').selectedIndex].value;
	
		//Objeto ajax	
		ajax=Ajax();
	
		ajax.open("POST","pruebas.php"+"?",true);
		
		ajax.onreadystatechange=function() {
			if(ajax.readyState==1){
				//Escribo en el div
				SelectOrigen.innerHTML="Cargando........";
				//Activo combobox
				SelectDestino.disabled=false;	
			}
			else if (ajax.readyState == 4 ) {
				if(ajax.status==200)
				{
					SelectOrigen.innerHTML = ajax.responseText;
				}
				else if(ajax.status==404)
                {
	                SelectOrigen.innerHTML = "La direccion no existe";
                }
                else
       	        {
                    SelectOrigen.innerHTML = "Error: ".ajax.status;
        	    }
			}		
		}
		//Realizo envio diciendo que es una forma
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		ajax.send('var1='+Selected);
}
Por ultimo este es el php donde quiero capturar las varibles del combobox idTipoCot
Código PHP:
<?
print_r
("Post".$_POST);
print_r("Get".$_GET);
print_r("Request".$_REQUEST);
?>

Muchas gracias.

Última edición por zero_21_21; 09/12/2008 a las 16:44 Razón: No respuesta
  #2 (permalink)  
Antiguo 09/12/2008, 21:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Envio de variable por metodo POST

Pues si especificaras QUE NO TE SIRVE es mas facil que te podamos ayudar.

Saludos
  #3 (permalink)  
Antiguo 10/12/2008, 08:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 7
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Envio de variable por metodo POST

El problema esta en la funcion cargarContenido donde el responseText no esta retornando nada y la varaible $_POST invocada en el php tampoco devuelve el valor que necesito, el cual es el indice del primer combobox.

La funcion efectivamente entra en el if(ajax.status==200) pero no retorna nada..


Código PHP:


function cargarContenido(){
    
//Div donde estaran los innerHTML
    
var SelectOrigen=document.getElementById('idajax');
    
// variable para activar un combobox
    
var SelectDestino=document.getElementById('idTipoId');
    
//Capturo el valor Seleccionado en el combobox
    
var Selected=document.getElementById('idTipoCot').options[document.getElementById('idTipoCot').selectedIndex].value;
    
        
//Objeto ajax    
        
ajax=Ajax();
    
        
ajax.open("POST","pruebas.php"+"?",true);
        
        
ajax.onreadystatechange=function() {
            if(
ajax.readyState==1){
                
//Escribo en el div
                
SelectOrigen.innerHTML="Cargando........";
                
//Activo combobox
                
SelectDestino.disabled=false;    
            }
            else if (
ajax.readyState == ) {
                if(
ajax.status==200)
                {
                    
SelectOrigen.innerHTML ajax.responseText;
                }
                else if(
ajax.status==404)
                {
                    
SelectOrigen.innerHTML "La direccion no existe";
                }
                else
                   {
                    
SelectOrigen.innerHTML "Error: ".ajax.status;
                }
            }        
        }
        
//Realizo envio diciendo que es una forma
        
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        
ajax.send('var1='+Selected);

  #4 (permalink)  
Antiguo 10/12/2008, 10:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Envio de variable por metodo POST

Hola

Por los general en PHP utilizan la funcion "echo" para las respuestas, y obtienen los parametros mediante $_POST[<nombre de argumento enviado>], si no es por esto revisa bien el contenType de la funcion ajax, por que si no se define correctamente el servidor rechaza la peticion (aunque parece que no es el caso).

Con esto hay que tener paciencia, a mi casi no me funciona la primera vez con Servlets
  #5 (permalink)  
Antiguo 10/12/2008, 11:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Envio de variable por metodo POST

Prueba hacer un alert(Selected) para que veas si estas enviando el valor correcto, por otro lado si usas POST, prueba hacer en tu script solamente var_dump($_POST).

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.