Foros del Web » Programando para Internet » Javascript »

resultado mysql con ajax

Estas en el tema de resultado mysql con ajax en el foro de Javascript en Foros del Web. Hola, me estoy volviendo loca probando scripts pero ninguno funciona porque la mayoria necesitan los datos en el formulario. Tengo un script que comprueba disponibilidad ...
  #1 (permalink)  
Antiguo 25/11/2011, 03:48
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 12 años, 3 meses
Puntos: 6
resultado mysql con ajax

Hola, me estoy volviendo loca probando scripts pero ninguno funciona porque la mayoria necesitan los datos en el formulario.
Tengo un script que comprueba disponibilidad y precio de las propiedades.
Usa php-mysql y al enviar el formulario donde solo se introduce las fechas (en formato año-mes y otro select el dia), el resultado viene en la misma pagina usando el #destinoenlapagina.

Bueno quiero quitar eso de refrescar la pagina y saltar hasta el formulario para que salga el resultado de los queries, y la solucion es ajax, y si puede ser hijax para que funcione si javascript esta desactivado mejor. Y sin jquery mejor ya que ya tengo un script mootols en esas paginas y el peso sería bastante grande.

Alguien sabe un buen script que no solo demuestra los datos del formulario sino de los selects de los queries de mysql.
Voy a pegar el codigo php para que vean que es complicadito (al menos para mi).
El nombre de la propiedad no viene de la base de datos sino esta declarado en la misma pagina manualmente.
Bueno es demasiado largo el codigo, asi que recorto lo que es igual
Código:
 		<?php
		include("conex/conexion.php");
if ($_POST['enviar']) {
 $llegada = $month."-".$day;
  $salida = $month2."-".$day2;
$monthyear = explode('-', $month); 
$arrival_display = $day .' '. $monthyear[1] .' '. $monthyear[0]; 
$monthyear2 = explode('-', $month2); 
$departure_display = $day2 .' '. $monthyear2[1] .' '. $monthyear2[0]; 
$arrival_display = ltrim($arrival_display, "0"); 
$arrival_display = str_replace(" 01", " Jan", $arrival_display); 
$arrival_display = str_replace(" 02", " Feb", $arrival_display); 
etc
$departure_display = ltrim($departure_display, "0"); 
$departure_display = str_replace(" 01", " Jan", $departure_display); 
$departure_display = str_replace(" 02", " Feb", $departure_display); 
etc 
if ($salida > $llegada){

//miramos si disponible
$result = mysql_query ("SELECT DATE_FORMAT(llegada, '%e %b %Y') as lleg, DATE_FORMAT(salida, '%e %b %Y') as sal,tiporeserva, propiedad, TO_DAYS('$salida') - TO_DAYS('$llegada') as dias from bookings where ( propiedad = '$propiedad' )
AND (('$llegada' BETWEEN llegada AND date_sub(salida, interval +1 day)) 
or ('$salida' BETWEEN date_sub(llegada, interval -1 day) AND salida) or (llegada <= '$llegada' AND salida >= '$salida') or (llegada >= '$llegada' AND salida <= '$salida'))", $dbh);
if ($row = mysql_fetch_object($result)) {
if ($row->tiporeserva=="larga"){ echo "This property is available only for long term rentals, consult us for a price."; } 
else { 
do{
$propiedad = str_replace("_", " ", $propiedad); 
echo "<span class='red'>$propiedad is occupied from ". $row->lleg ." until ". $row->sal ."</span><br>"; 
$availability="<span class='red'>No, $propiedad is not available from $arrival_display to $departure_display.</span>"; 
echo "</table> \n"; 
} while ($row = mysql_fetch_object($result));
} 
}
else {

$sql = "SELECT llegada, salida, propiedad, TO_DAYS('$salida') - TO_DAYS('$llegada') as dias from bookings where ( propiedad = '$propiedad' ) AND ((llegada = '$salida') OR (salida = '$llegada'))"; 
$rows = mysql_fetch_assoc(mysql_query($sql)); 
$dias=$rows['dias'];
if ($salida==$rows['llegada'])
{  $availability= "<span class=\"red\">For dates $arrival_display to $departure_display, consultation is necessary as there is a booking arriving the same day as your
departure date.</span>"; 
if ($dias<7)
{
$half_round="Consultation is necessary as prices are based on 7 nights."; }
 
else {

// fin mirar si disponible
$result = mysql_query ("SELECT 
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' BETWEEN nov_inicio AND nov_fin) 
THEN sum(novbr) * (TO_DAYS('$salida') - TO_DAYS('$llegada')) ELSE NULL END) AS price,
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' > nov_fin) 
THEN sum(novbr) * (TO_DAYS(dec_inicio) - TO_DAYS('$llegada'))ELSE NULL END) AS price1,
etc.

FROM precios where precios.id_propiedad = '$propiedad'
", $dbh);

while ($row = mysql_fetch_array($result)){
$price=$row["price"]; 
$price1=$row["price1"];
$price2=$row["price2"]; 
$price3=$row["price3"]; 
etc
} 

$total=$price+$price1+etc;
$half_round = round(($total*2), 0)/2;

}} 
elseif ($llegada==$rows['salida'])
{  $availability= "<span class=\"red\">For dates $arrival_display to $departure_display, consultation is necessary as there is a booking leaving the same day as your
arrival date.</span>"; 
if ($dias<7)
{
$half_round="Consultation is necessary as prices are based on 7 nights."; }
 
else {

// fin mirar si disponible
$result = mysql_query ("SELECT 
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' BETWEEN nov_inicio AND nov_fin) 
THEN sum(novbr) * (TO_DAYS('$salida') - TO_DAYS('$llegada')) ELSE NULL END) AS price,
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' > nov_fin) 
THEN sum(novbr) * (TO_DAYS(dec_inicio) - TO_DAYS('$llegada'))ELSE NULL END) AS price1,
etc

FROM precios where precios.id_propiedad = '$propiedad'
", $dbh);

while ($row = mysql_fetch_array($result)){
$price=$row["price"]; 
$price1=$row["price1"];
$price2=$row["price2"]; 
$price3=$row["price3"]; 
etc
} 

$total=$price+$price1+etc.;
$half_round = round(($total*2), 0)/2;

}}

else { 
$sqls = "SELECT TO_DAYS('$salida') - TO_DAYS('$llegada') as dias from bookings "; 
$rowss = mysql_fetch_assoc(mysql_query($sqls)); 
$dias=$rowss['dias'];
$propiedad = str_replace("_", " ", $propiedad);
$availability="<span class=\"red\">Yes, $propiedad is available from $arrival_display to $departure_display.</span>";
$propiedad = str_replace(" ", "_", $propiedad);
if ($dias<7)
{
$half_round="Consultation is necessary as prices are based on 7 nights."; }
 
else {

// fin mirar si disponible
// cambiar según semana santa
$result = mysql_query ("SELECT 
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' BETWEEN nov_inicio AND nov_fin) 
THEN sum(novbr) * (TO_DAYS('$salida') - TO_DAYS('$llegada')) ELSE NULL END) AS price,
(CASE WHEN ('$llegada' BETWEEN nov_inicio AND nov_fin and '$salida' > nov_fin) 
THEN sum(novbr) * (TO_DAYS(dec_inicio) - TO_DAYS('$llegada'))ELSE NULL END) AS price1,
etc.

FROM precios where precios.id_propiedad = '$propiedad'
", $dbh);

while ($row = mysql_fetch_array($result)){
$price=$row["price"]; 
$price1=$row["price1"];
$price2=$row["price2"]; 
etc
} 

$total=$price+$price1+etc.;
$half_round = round(($total*2), 0)/2;

}
}
}
  }//end if salida mayor
 else {echo "<span class=\"red\">There is an error with the dates please try again, arrival: $arrival_display  and departure: $departure_display </span>";}
}
?> 
            <?php
mysql_close($dbh);
echo "<p class=\"resulttext\">Available: $availability<br>Price in euros: <span class=\"red\">$half_round</span><br>Nights: <span class=\"red\">$dias</span></p>";
?>
Gracias de antemano
  #2 (permalink)  
Antiguo 25/11/2011, 04:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: resultado mysql con ajax

UUps, lo siento, crei que habia elegido el foro de ajax, si se puede mover para no postear doble, gracias

Última edición por helenp; 25/11/2011 a las 04:15

Etiquetas: ajax, mysql, php
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 20:33.