Foros del Web » Programando para Internet » PHP »

Problema recogiendo variables

Estas en el tema de Problema recogiendo variables en el foro de PHP en Foros del Web. hola, me encuentro con un problema al recoger unas variables de un form. las envio por ajax y las recogo en Php para hacer una ...
  #1 (permalink)  
Antiguo 03/10/2011, 08:55
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
Problema recogiendo variables

hola,
me encuentro con un problema al recoger unas variables de un form. las envio por ajax y las recogo en Php para hacer una consulta:
Código PHP:
$date1 "'".$_POST['date1']."'"//le meto echos para ver q los recibe
$date2 "'".$_POST['date2']."'";
$especies_procesar $_POST['especies']; 
parece q los datos los recibe la primera vez pero despues casca y no hace la consulta claro, una vez ejecutada la consulta en firebug el post me pone:
Código HTML:
'20111002''20111014'#'15'select id_haul, id_catch, shooting_time, total_discarded_weight, a_code, ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in ('15') and shooting_time between '20111002' and (timestamp '20111014' + interval '1 days')
como veis la primera vez pasa los parametros del form, pero despues...
aqui veo q los datos los pasa, pero el Get:
Código HTML:
Notice: Undefined index: date1 in /var/www/html/faros/Geo/consulta2.php on line 8
''
Notice: Undefined index: date1 in /var/www/html/faros/Geo/consulta2.php on line 11

Notice: Undefined index: date2 in /var/www/html/faros/Geo/consulta2.php on line 13
''
Notice: Undefined index: date2 in /var/www/html/faros/Geo/consulta2.php on line 16

Notice: Undefined index: especies in /var/www/html/faros/Geo/consulta2.php on line 18

Notice: Undefined index: especies in /var/www/html/faros/Geo/consulta2.php on line 21
select id_haul, id_catch, shooting_time, total_discarded_weight, a_code, ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in () and shooting_time between '' and (timestamp '' + interval '1 days')
Warning: pg_query(): Query failed: ERROR:  syntax error at or near ")" at character 161 in /var/www/html/faros/Geo/consulta2.php on line 27
Query failed: ERROR:  syntax error at or near ")" at character 161
alguno me puede ayudar. gracias.
  #2 (permalink)  
Antiguo 03/10/2011, 10:10
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: Problema recogiendo variables

Sin ver más información es complicado ayudarte ya que no muestras ni el script AJAX para hacer el envío ni nada.
  #3 (permalink)  
Antiguo 03/10/2011, 13:43
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema recogiendo variables

Tienes razon, disculpas, este es el script q envia los datos del form y evita q se recargue la pagina al enviarlo.

Código:
<script type="text/javascript">
function enviarDatos(){
	var formulario = document.getElementById("formulario");
	var datos = new FormData(formulario);
	//xhr(datos);
   	probadate1=document.getElementById('date1');
    proba_date1=probadate1.value;
    probadate2=document.getElementById('date2');
    proba_date2=probadate2.value;
	probachooser=document.getElementById('especies');
	// completar la siguiente linea para obtener los values seleccionados en "selector"
	var txt='';
	var i;
	var count = 0;
	for (i=0; i<probachooser.options.length; i++) {
	    if (probachooser.options[i].selected) {
	      if (count==0)
		txt+= "'"+probachooser.options[i].value+"'";
	      else
	     txt+= "#'"+probachooser.options[i].value+"'";
	    }
	count++;
	}
	//hace la comparacion de las dos fechas
	compareDates('datechooser','date1','date2');
    url_proba='date1='+proba_date1+'&date2='+proba_date2+'&especies='+txt;
	xhr(url_proba);
}
var xmlhttp; 
function xhr(datos){ //funcion para crear las peticiones de XMLHttpResquest
// Generalmente sacada de páginas que usan un método para IE6 o anteriores,
// IE 7, FF, Opera, Google Chrome, u otros.
	/*var xmlhttp;*/
		if (window.XMLHttpRequest)
  			{// code for IE7+, Firefox, Chrome, Opera, Safari
  				xmlhttp=new XMLHttpRequest();
	  		}
		else
	  		{// code for IE6, IE5
  				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
		xmlhttp.onreadystatechange = procesarRespuesta; //Ojo sin parentesis
		xmlhttp.open("POST", "consulta2.php", true); 
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", 3);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(datos);
		}
	function procesarRespuesta(){
		if(xmlhttp.readyState == 4) {
      		if(xmlhttp.status == 200) {
				//document.getElement.innerHTML = xmlhttp.responseText;
			//alert(xmlhttp.responseText);
			//recarga el grid al hacer la peticion. de salida esta a false para que no lo muestre.
				store.load();
			}
    	}
}
</script>
Como decia en el primer mensaje, una vez q muestra el POST en firebug, veo q efectivamente rellena los campos especie y date1 y date2, pero cuando veo el GET es cuando dice lo de undefined index.
probe con algo del estilo - q seguro q esta mal -
Código:
$date1 = "'".$_POST['date1']."'";//recoge la fecha entre comas
echo $date1;
if(!isset($_POST['date1'])){
	$date1 = "'".$_POST['date1']."'";
} 
...
  #4 (permalink)  
Antiguo 03/10/2011, 14:28
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: Problema recogiendo variables

Pues, creo el problema es ¿que estas esperando que la petición sea por POST no?, ya que si usas $_POST siempre tienes que enviar por POST, si mandas por GET, la variable $_POST esta vacia.

Saludos.
  #5 (permalink)  
Antiguo 03/10/2011, 15:59
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema recogiendo variables

no uso GET, salvo q te refieras a los GetElementById

Etiquetas: html, variables
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 08:25.