Foros del Web » Programando para Internet » PHP »

php y javascript forms

Estas en el tema de php y javascript forms en el foro de PHP en Foros del Web. hola, para complicar mas hago el query a la DB, muestro los datos en un FORM -POST- y lo ejecuto via AJAX para q no ...
  #1 (permalink)  
Antiguo 15/09/2011, 05:15
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
php y javascript forms

hola, para complicar mas hago el query a la DB, muestro los datos en un FORM -POST- y lo ejecuto via AJAX para q no me recargue la pagina ¡perfecto!.
Ahora quiero introducir un tercero en discordia, un Calendar q me haga una comparacion de fechas para poder hacer selecciones en funcion de un rango de fechas. he metido un calendar q compara las fechas, esta programado en javascript y el Form es -GET-. Como hago para ejecutar la consulta entera? q meta los valores del calendar javascript, y ejecute el PHP de la consulta a la base de datos con los datos del form post y del get de las fechas?
Código HTML:
<table>
<FORM action="#" name='datechooser' method="GET" onSubmit="return compareDates('datechooser','date1','date2');">
<tr>
<td valign="top" style="width: 30em;">
<h3>Fecha de inicio<INPUT type="text" name="date1" onFocus="doShow('datechooser1','datechooser','date1')"></h3><br>
<div enabled='false' id="datechooser1"></div>
</td>
</tr>
<tr>
<td>
<h3>Fecha Final&nbsp;<INPUT type="text" name="date2" onFocus="doShow('datechooser2','datechooser','date2')"></h3><br>
<div enabled='false' id="datechooser2"></div>
<INPUT type="submit" value="Consultar">
</FORM>
</td>
</tr>
</table> 
Este es el query a la BD
Código PHP:
$query 'select id_haul, id_catch from "haul" natural inner join catch where a_code = \'EJB\' and shooting_time between \'-infinity\' and \'now\'';
$result pg_query($query) or die('Query failed: ' pg_last_error()); 
Como hago para enlazar las dos cosas el form con la consulta a la bd en php y el resultado del form de las fechas javascript?
gracias.
  #2 (permalink)  
Antiguo 15/09/2011, 08:46
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: php y javascript forms

pues no se si entendi bien tu pregunta si no es lo que quieres me dices
pero puedes enviar por post los valores del calendario algo así

Código Javascript:
Ver original
  1. <input type="text" name="Fecha1" id = "Fecha1"  value="<?=$_POST['Fecha1']?>" > <img src="/imagenes/calendar.gif" id="btn_Fecha1" alt="calendario" align="texttop"/>
  2.          <script type="text/javascript">
  3.                 Calendar.setup(
  4.                 {
  5.                 inputField : "Fecha1", // ID of the input field
  6.                             showsTime      :    true,
  7.                 ifFormat : "%Y-%m-%d ", // the date format
  8.                 button : "btn_Fecha1" // ID of the button
  9.                 }
  10.                 );
  11.             </script>

envias por post el valor de Fecha1
Código PHP:
$Fecha1 $_POST['Fecha1']; 
y ya haces la consulta donde Fecha1 traerá el valor que se envió en el calendario javascritp

y pues ya puedes hacer la consulta

Código PHP:
$query "select * from tabla where fechas  between '$Fecha1' and '$Fecha2"


a el calendario que yo uso y del cual puse algo de código se encuentra aquí, esta muy bueno no se si tu uses ese mismo, si lo usas debes de incluir en el head todas las referencias a los js
http://sourceforge.net/projects/jscalendar/
__________________
De informáticos y locos todos tenemos un poco
  #3 (permalink)  
Antiguo 16/09/2011, 02:06
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

Hola Markgus, he probado varios calendarios entre ellos este q tu me comentas. probé este:
http://www.compunauta.com/forums/linux/programacion/java/gus_calendar.html
aunque para no ponerme a tocar en demasia los estilos y además me daba problemas a la hora de formatear la fecha, me he decantado por otro q me saca el intervalo del modo (08/06/2011-10/06/2011) a un unico input, este deberia de ser el valor q tuviese q pasar para despues hacer la consulta en PHP.
Código HTML:
<h2>Seleccione intervalo de fechas:&nbsp;</h2><br><input type="text" id="intervalo_fechas" size="23">&nbsp;<img src="images/calendario.gif" onClick="javascript:showVentanaSeleccionFechas('intervalo_fechas', 'Intervalo de fechas');" border="0"> 
abre dos inputs para cada una de las fechas y despues saca al input principal el intervalo de ambas fechas como lo mostré antes. ahora debo de recoger ese valor y enviarlo.
Gracias por contestar.
  #4 (permalink)  
Antiguo 16/09/2011, 04:20
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

este es el q he decidido usar, cambiandole cosas, dejando solo un input por ejemplo:
http://www.parentesys.es/contenidos.php?id=32856
si le paso entonces el
Código HTML:
value="<?=$_POST['intervalo_fechas']?>"
en PHP lo recojo, del modo?
Código PHP:
$intervalo_fechas=$_POST['intervalo_fechas']; 
La consulta seria por ejemplo?:
Código PHP:
select  shooting_time from "haul" where shooting_time '".$_POST['intervalo_fechas']."'
gracias.

Última edición por emeotero; 16/09/2011 a las 04:22 Razón: ese intervalo q seleccione en el form lo busca tal cual en la base de datos?
  #5 (permalink)  
Antiguo 16/09/2011, 07:51
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: php y javascript forms

Cita:
Iniciado por emeotero Ver Mensaje
Hola Markgus, he probado varios calendarios entre ellos este q tu me comentas. probé este:
http://www.compunauta.com/forums/lin..._calendar.html
aunque para no ponerme a tocar en demasia los estilos y además me daba problemas a la hora de formatear la fecha, me he decantado por otro q me saca el intervalo del modo (08/06/2011-10/06/2011) a un unico input, este deberia de ser el valor q tuviese q pasar para despues hacer la consulta en PHP.
Código HTML:
<h2>Seleccione intervalo de fechas:&nbsp;</h2><br><input type="text" id="intervalo_fechas" size="23">&nbsp;<img src="images/calendario.gif" onClick="javascript:showVentanaSeleccionFechas('intervalo_fechas', 'Intervalo de fechas');" border="0"> 
abre dos inputs para cada una de las fechas y despues saca al input principal el intervalo de ambas fechas como lo mostré antes. ahora debo de recoger ese valor y enviarlo.
Gracias por contestar.
el que yo te puse tambien puedes darle el formato que quieras ejemplo si pongo el formato así
Código Javascript:
Ver original
  1. ifFormat : "%Y-%m-%d %H:%M:%S  ",
me da la fecha tipo timestamp así 2011-09-16 22:10:05 y pues puedes ir jugando con como quieres la fecha, si quiero dia mes y año y separado por / puedo usar %d/%m/%Y y asi sucesivamente supongo que en el tuyo también puedes darle el formato que quieras solo lee tantito la documentación
__________________
De informáticos y locos todos tenemos un poco
  #6 (permalink)  
Antiguo 16/09/2011, 08:33
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: php y javascript forms

Cita:
Iniciado por emeotero Ver Mensaje
este es el q he decidido usar, cambiandole cosas, dejando solo un input por ejemplo:
http://www.parentesys.es/contenidos.php?id=32856
si le paso entonces el
Código HTML:
value="<?=$_POST['intervalo_fechas']?>"
si se lo pasas así esto es para que se quede la variable después de un post lo puedes quitar o dejar, esto se usa más por ejemplo cuando llenas un formulario y no rellenas todos los datos y actualizas y se limpia el formulario, estos es para evitarlo al poner esto
Código HTML:
value="<?=$_POST['intervalo_fechas']?>"
si envías se recupera la variable como te digo lo puedes dejar o quitar pero es recomendable

en PHP lo recojo, del modo?
Código PHP:
$intervalo_fechas=$_POST['intervalo_fechas']; 
si así asignas lo del value del input enviado por post a una variable php que en este caso seria $intervalo_fechas
La consulta seria por ejemplo?:
Código PHP:
select  shooting_time from "haul" where shooting_time '".$_POST['intervalo_fechas']."'
mm aquí ya no es necesario que pongas $_POST['intervalo_fechas'] ya que arriba ya asignaste lo que se envía por post a una variable php que es la que pondrias,
tu consulta puede quedar así
Código PHP:
select  shooting_time from "haul" where shooting_time '".$intervalo_fechas."'
aunque yo prefiero escapar las comillas así pero bueno es cuestión de gustos
Código PHP:
$query "select  shooting_time from haul where shooting_time = '$intervalo_fechas'";
mysql_query($query) or die (mysql_error()); 
y pues contestandote note que quieres enviar dos valores por medio de un solo input, pues no se si se pueda bueno puedes escapar comillas y formar consultas aunque se te dificultara hacer el between no creo que sea recomendable hacer esto asi que yo te recomendaria mejor que usaras 2 inputs y cada uno tenga su variable ejemplo
Código PHP:
$query "select  shooting_time from haul where shooting_time between '$intervalo_fechas1' and '$intervalo_fechas2 '";
mysql_query($query) or die (mysql_error()); 

gracias.
no hay de que aquí estamos para ayudar en lo que se pueda
mm no me dejo multicitar tu mensaje pero bueno escribí comentarios abajo de lo que preguntas
__________________
De informáticos y locos todos tenemos un poco

Última edición por Markgus; 16/09/2011 a las 08:39
  #7 (permalink)  
Antiguo 19/09/2011, 01:56
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

Pues finalmente me he decantado por utilizar dos inputs, uno para cada fecha.
Código HTML:
<h3>Fecha Inicio</h3><INPUT type="text" name="date1" onfocus="doShow('datechooser1','datechooser','date1')" value="<?=$_POST['date1']?>"><br>
<div enabled='false' id="datechooser1"></div>
<h3>Fecha Final&nbsp;</h3><INPUT type="text" name="date2" onfocus="doShow('datechooser2','datechooser','date2')" value="<?=$_POST['date2']?>"><br>
<div enabled='false' id="datechooser2"></div> 
los recojo en el fichero PHP
Código PHP:
$date1=$_POST['date1'];
$date2=$_POST['date2'];
//y hago la consulta
select id_haulid_catchshooting_time from "haul" natural inner join catch where a_code '$a_code\' and shooting_time between '$date1' and (timestamp '$date2' + interval '1 days) ; 
el campo a_code viene del primer select del form en el q selecciono la especie
Código PHP:
<?php
while ($line pg_fetch_array($resultnullPGSQL_ASSOC)) {
echo 
"<option value="$line["a_code"].">"$line["scientific_name"]."</option>";

?>
ahora solo me queda probar...
  #8 (permalink)  
Antiguo 19/09/2011, 06:53
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

FAIL! algo estoy haciendo mal pq me da error:

Notice: Undefined index: date1 in /var/www/html/faros/Geo/consulta2.php on line 8
la fecha es
Notice: Undefined index: date2 in /var/www/html/faros/Geo/consulta2.php on line 10

Warning: pg_query(): Query failed: ERROR: invalid input syntax for type timestamp with time zone: "$date1" at character 125 in /var/www/html/faros/Geo/consulta2.php on line 14
Query failed: ERROR: invalid input syntax for type timestamp with time zone: "$date1" at character 125
  #9 (permalink)  
Antiguo 19/09/2011, 08:29
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: php y javascript forms

disculpa tuve un fin de semana largo

bueno es un error de sintaxis en tu consulta timestamp es un tipo de datos no una funcion
para eso existe la funcion timestampdiff
ejemplos

Código MySQL:
Ver original
  1. SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
  2.     #   -> 3
  3.  SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
  4.       #  -> -1

más información aquí
http://dev.mysql.com/doc/refman/5.0/...functions.html

y puedes ir jugando con las demás funciones también existe la función day que es la que necesitas aunque no me queda claro que es exactamente lo que quieres hacer con tu consulta mm pense que solo querias mostrar resultados en un intervalo de fechas, bueno si lo que te puse arriba no t soluciona me puedes decir que es lo que necesitas de la consulta? para ver si te puedo ayudar con ella
__________________
De informáticos y locos todos tenemos un poco
  #10 (permalink)  
Antiguo 20/09/2011, 00:35
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

Hola Markgus,
otra vez gracias. primeramente estoy trabajando con postgres (postGis) pq estoy usando GeoSever. dos selects para la consulta: uno de especies las cuales obtengo de una tabla de la base de datos y otro de fechas para saber q especie se cogio en un determinado espacio de tiempo. para este select uso el calendario en javascript, estas fechas no las cojo de la base de datos pq seria intratable. entonces el intervalo q obtengo de usar el calendario lo quiero comparar con las fechas de la tabla para obtener los resultados. el tipo de dato en la tabla es Timestamp, haciendo consultas de prueba en la BD en linea de comandos, si le meto la fecha de ese modo, si me arroja resultados. el problema es hacerle llegar la consulta a la BD desde el fichero PHP.
de todos modos ya no me estaba cogiendo el date q le envio con el $_POST desde la pagina principal, me falta algo? un script o algo?
  #11 (permalink)  
Antiguo 20/09/2011, 04:41
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

he decidido empezar por el principio, y esto es q haciendo una consulta generica del tipo
Código PHP:
$query 'select id_haul, id_catch, ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code = \'EJB\' and shooting_time between \'-infinity\' and \'now\''//aqui importa q supongo q recibe el shooting_time pq no casca 
la consulta no casca!!. el primer problema q me encuentro es q la linea de codigo q pongo en el php antes de la consulta $date1 = $_POST['date1']; al hacerle un echo ¡no recibe nada!, con lo q me debe de faltar algo en el form.
comentarte q uso AJAX para enviar el form para q no se recargue la pagina.
Código HTML:
<script type="text/javascript">
function enviarDatos(){
	var formulario = document.getElementById('formulario');
	var datos = new FormData(formulario);
	xhr(datos);
}
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.send(datos);
		//recarga el grid al hacer la peticion. de salida esta a false para que no lo muestre. 
		store.load();
		//hace la comparacion de las dos fechas por si es menor la 2ª q la 1ª
		compareDates('datechooser','date1','date2');
		}
	function procesarRespuesta(){
		if(xmlhttp.readyState == 4) {
      		if(xmlhttp.status == 200) {
				//document.getElement.innerHTML = xmlhttp.responseText;
			//alert(xmlhttp.responseText);
			//alert("Su peticion ha sido procesada");
			}
    	}
}
</script> 
en el form
Código HTML:
<h3>Fecha Inicio</h3><INPUT type="text" name="date1" size="20" onfocus="doShow('datechooser1','datechooser','date1')" value="<?=$_POST['date1']?>"><br>
<div enabled='false' id="datechooser1"></div>
<h3>Fecha Final&nbsp;</h3><INPUT type="text" name="date2" size="20" onfocus="doShow('datechooser2','datechooser','date2')" value="<?=$_POST['date2']?>"><br>
<div enabled='false' id="datechooser2"></div> 
falta algo verdad? un script para enviar el post?
xD estoy atorado!
  #12 (permalink)  
Antiguo 20/09/2011, 08:37
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: php y javascript forms

pues te falta poner los document.getElementById para los input
y pues en el ajax creo que recuperan con el $_REQUEST

haz un ejemplo sencillo similiar a este para que hagas el echo y veas si te esta recuperando o que envias del form

http://www.forosdelweb.com/f127/ajax...7/#post1997391
__________________
De informáticos y locos todos tenemos un poco

Última edición por Markgus; 20/09/2011 a las 08:45
  #13 (permalink)  
Antiguo 21/09/2011, 02:29
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

Efectivamente! estaba intentando entender q era lo q hacia la clase FormData pero no se si es por un problema de versiones, especificaciones... q no chutaba. le he metido los document.getElementById para los inputs y funciona. hago una cadena en el cliente para q recoga los datos del formulario y la proceso despues en PHP con un str_replace. ESTO ESTA SOLUCIONADO ¡¡GRACIAS!!.
ahora me peleare con la consulta por el tema del timestamp a ver si la soluciono.
  #14 (permalink)  
Antiguo 21/09/2011, 05:34
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

aaarg, pensaba q estaba pero no!. estoy obteniendo los valores de los inputs y los meto en un string separado por # y ' para despues procesarlo:

Código HTML:
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++;
	}
    url_proba='date1='+proba_date1+'&date2='+proba_date2+'&especies='+txt;
	xhr(url_proba);
el post envia, por ejemplo esta consulta tipo:

date1 20110905
date2 20110914
especies #'ALC'#'PHO'#'SWX'#'OUM'

Fuente
date1=20110905&date2=20110914&especies=#'ALC'#'PHO '#'SWX'#'OUM'


lo quiero recoger en PHP y sustituir la almohadilla por comas y hacer la consulta (de momento no he pasado a lo de las fechas)

Código PHP:
$especies_procesar str_replace("#",",",$_POST['especies']);
$query 'select id_haul, id_catch, shooting_time ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in ('.$especies_procesar.') and shooting_time between \'-infinity\' and \'now\'';
echo 
$query
y lo q me sale es:

select id_haul, id_catch, shooting_time ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in (,'ALC','PHO','SWX','OUM') and shooting_time between '-infinity' and 'now'
Warning: pg_query(): Query failed: ERROR: syntax error at or near "(" at character 53 in /var/www/html/faros/Geo/consulta2.php on line 24
Query failed: ERROR: syntax error at or near "(" at character 53


como quito ese primer caracter? (q supongo q es el problema)
  #15 (permalink)  
Antiguo 21/09/2011, 06:01
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

me faltaba la comilla en el primer txt+= "'"+probachooser.options[i].value+"'";
si ejecuto la consulta la primera vez no me pone la comilla aunque sigue fallando
POST:
date1=20110901&date2=20110908&especies='AKJ'#'AKL' #'14'
RESP:
select id_haul, id_catch, shooting_time ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in ('AKJ','AKL','14') and shooting_time between '-infinity' and 'now'
Warning: pg_query(): Query failed: ERROR: syntax error at or near "(" at character 53 in /var/www/html/faros/Geo/consulta2.php on line 24
Query failed: ERROR: syntax error at or near "(" at character 53

pero las sucesivas veces q ejecuto la consulta si me pone la coma delante de la primera especie ¿?¿?
POST:
date1=20110901&date2=20110903&especies=#'16'#'ALC' #'PHO'#'SWX'#'OUM'#'OUW'
RESP:
select id_haul, id_catch, shooting_time ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in (,'16','ALC','PHO','SWX','OUM','OUW') and shooting_time between '-infinity' and 'now'
Warning: pg_query(): Query failed: ERROR: syntax error at or near "(" at character 53 in /var/www/html/faros/Geo/consulta2.php on line 24
Query failed: ERROR: syntax error at or near "(" at character 53
  #16 (permalink)  
Antiguo 21/09/2011, 06:07
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: php y javascript forms

¿From "haul" ? ¿No debería ir con ` en vez de "?

¿Q es ST_AsGeoJSON(geom, 4)? (supongo q alguna funcion de "sql") ¿No te falta una coma antes de eso? (para separar shooting_time de ST_AsGeoJSON(geom,4)?
__________________
>> Eleazan's Source
>> @Eleazan
  #17 (permalink)  
Antiguo 21/09/2011, 06:20
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

hola Eleazan, si falta una coma entre Shooting_time y ST_ASGeoJSON q por cierto, es una funcion de POSTGIS q lo q hace es q devuelve la geometria como un elemento GeoJSON, esto es, un fichero JSON con coordenadas Geograficas. la tabla haul si le pongo comilla simple casca con lo q tiene q ir con dobles.
lo q me mata es q la primera vez q ejecuta el script no mete la # delante del primer valor (como puse) y en las sucesivas si lo hace y bueno ese error
Warning: pg_query(): Query failed: ERROR: syntax error at or near "," at character 114 in /var/www/html/faros/Geo/consulta2.php on line 24
Query failed: ERROR: syntax error at or near "," at character 114
q tb!!
  #18 (permalink)  
Antiguo 21/09/2011, 06:29
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: php y javascript forms

¿Y si antes de
Código PHP:
$especies_procesar str_replace("#",",",$_POST['especies']); 
haces algo así?
Código PHP:
$especies_procesar $_POST['especies'];
if(
$especies_procesar[0] == '#'$especies_procesar[0] = ''//Elimina el primer #
$especies_procesar str_replace("#",",",$especies_procesar); //Cambia el resto de # a comas 
__________________
>> Eleazan's Source
>> @Eleazan
  #19 (permalink)  
Antiguo 21/09/2011, 06:37
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

no lo hace!! sigue del mismo modo la primera consulta la pone sin , pero las siguientes la mete.
por cierto Eleazan, gracias por contestar.
  #20 (permalink)  
Antiguo 21/09/2011, 08:18
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: php y javascript forms

Algo más falla, entonces.

El problema es que envias #'algo'#'otro'#'xD'

Si ahí cambias los # por comas, te queda ,'algo','otro','xD'. Eso será siempre así, si es lo q mandas. En teoria, el código que te he pasado el primer # lo pone como '' (sino, prueba con un espacio!) para que no te pasara lo de la primera coma. Por ahí andan los tiros!

Sino, prueba esto:

En la query, donde pones
Código PHP:
where a_code in ('.$especies_procesar.'
pon
Código PHP:
where a_code in ('.ltrim($especies_procesar,',').'
Con ltrim lo que hacemos, es pillar una cadena, y por la izq quitar los caracteres que le pasemos como argumento (en este caso, la ,
__________________
>> Eleazan's Source
>> @Eleazan
  #21 (permalink)  
Antiguo 22/09/2011, 00:57
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

Efectivamente Eleazan, en la primera opcion si le meto un espacio en blanco en las comillas q elimina la #, esa parte de la consulta devuelve la cadena:

select id_haul, id_catch, ST_AsGeoJSON(geom, 4) AS geojson from "haul" natural inner join catch where a_code in ( 'BDX','BOG','POA') and shooting_time between '-infinity' and 'now'

con ese espacio en blanco generado. Con la opcion where a_code in ('.ltrim($especies_procesar,',').') tambien devuelve la cadena perfectamente formateada.

ahora como ves el resto de la consulta??:

and shooting_time between \'$date1\' and (timestamp \'$date2\' + interval '1 days')';

quiero hacer el intervalo entre las dos fechas seleccionadas, en la base postgres la fecha es tipo timestamp. Markgus me decia de usar Timestampdiff.
  #22 (permalink)  
Antiguo 22/09/2011, 02:57
 
Fecha de Ingreso: mayo-2011
Ubicación: Santiago de Compostela
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: php y javascript forms

YA ME FUNCIONA!! GRACIAS A TODOS.

$query = "select id_haul, id_catch, shooting_time, total_discarded_weight, ST_AsGeoJSON(geom, 4) AS geojson from \"haul\" natural inner join catch where a_code in (".$especies_procesar.") and shooting_time between ".$date1." and (timestamp ".$date2." + interval '1 days')";

Etiquetas: forms, javascript
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 21:55.