我有一個窗體,我根據用戶選擇部分加載。jQuery if()工作不好,要求空的ajax響應
當用戶選擇一個日期時,我搜索當天可用庫存的qtty(這是火車旅行的座位)。
我有3個IF()
句子
- 首先,我問,如果數據庫響應不返回任何行(所以在這個時間旅行尚未建立,所以我必須在那一刻的創建要保留的客戶)
- 其次,我問如果回覆是一個數字(我只返回一個數字,對不起,如果我以前沒有指定),如果它大於零。所以我更新可用的qtty。所以顧客不能購買不存在的座位。
- 第三也是最後一項,如果其他人失敗且qtty爲零,我只是向客戶發送一條消息,指出在該日期旅行已滿,他/她必須選擇不同的旅行日期。
我的代碼是這樣的:
$.post(url,function(data){
//********************
//data = parseInt(data);
alert("muestra: "+data+".");
//3 opciones
//si viene vacia la respuesta, es por que no encontro, reservas o sea que nadie a reservado para la fecha solicitada
// lo que sigue es crear la reserva de todas formas, luego re-consultar por los valores y traer la cantidad total //podria mejorar
//si viene con 0 es por que no existe disponibilidad para el viaje en esa fecha, tendra que intentar cambiando categoria (vagon) o fecha
//si un numero >=1 hay disponibilidad y se crean los sliders que le permiten seleccionar la cantidad de asientos para reservar
//TODO: cambiar al switch ....
if(data=="false" || data==false){
//if(data=='NaN'){
$("#info-disponibilidad").html("No existen reservas previas, sera el primero en reservar para esta fecha. Asientos Disponibles: ");
$("#info-disponibilidad").css("color","green");
var myRandom=parseInt(Math.random()*99999999); // tecnica cache buster
//url = 'asientos-disponibilidad.php?categoria='+$('#categoria option:selected').val()+'&fecha_reserva='+$('#fecha_reserva').val()+'&rand=' + myRandom;
url = 'crear_reservas.php?viaje='+$('#viajes option:selected').val()+'categoria='+$('#categoria option:selected').val()+'&fecha_reserva='+dateText+'&rand=' + myRandom;
$.post(url,function(data2){
//algo algo con la respuesta... ...
alert("1er: "+data2+".");
});
}
if(!isNaN(data) && data!=0){
//if(!isNaN(data) && data!=0){
alert("2do: "+data);
//este se puede aprender facilmente al buscar el ejemplo en Jquery Ui slider
$("#info-disponibilidad").html("Existen, "+data+" asientos Disponibles");
$("#info-disponibilidad").css("color","green");
//este se puede aprender facilmente al buscar el ejemplo en Jquery Ui slider
$("#slider-adultos").slider({
//range: "min",
min: 1,
max: data,
slide: function(event, ui) {
$("#adultos").val(ui.value);
$("#adultos").trigger("change");
},
stop: function(event, ui) {
$("#total-box").effect("highlight", {}, 2000);
//var max = parseInt($("#adultos").val());//usar esta variable en lugar de value (por si algo falla)
manejoreservas(ui.value,"ninos", data);
}
});
$("#slider-ninos").slider({
//range: "min",
min: 0,
max: data,
slide: function(event, ui) {
$("#ninos").val(ui.value);
$("#ninos").trigger("change");
},
stop: function(event, ui) {
$("#total-box").effect("highlight", {}, 2000);
//$("#slider-ninos").slider("option", "max", max);
//var max = parseInt($("#ninos").val());//
manejoreservas(ui.value,"adultos", data);
}
});
}
else//(!isNaN(data) && data==0 && data!=false)
{ // && data!=false
alert("3ro: "+data+" no disponibilidad");
$("#info-disponibilidad").html("No existen asientos Disponibles");
$("#info-disponibilidad").css("color","red");
}
});
和PHP代碼是這樣的:
<?php
//busca cual es la cantidad de asientos disponibles en una reserva si es que esta existe...
include('conn.php');
if (!$con)
{
die('Fallo conexion a la Base de datos: ' . mysql_error());
}else{
$categoria = $_GET['categoria'];
//$fecha = $_POST['fecha_reserva'];
$fecha = $_GET['fecha_reserva'];
$sql_cant ="SELECT restante FROM reservas WHERE fecha_reserva = '".$fecha."' AND categorias_idcategorias = ".$categoria."";
mysql_select_db("mvargas", $con);
$result = mysql_query($sql_cant);
$num_rows = mysql_num_rows($result);
//echo $sql_cant;
if($num_rows < 0){
echo "";
}else{
//echo "<b>".$num_rows."</b>";
while($row = mysql_fetch_assoc($result)){
$foo = $row['restante'];
$j++;
}
//
//var_dump($foo);
echo $foo;
}
}
?>
我已經實現的最後一件事,是一切工作,但它進入第一個IF
顯示一條消息,說明該用戶將在該日期的第一個預訂(創建旅行),然後它進入第三個IF
(否則在所示的代碼中)擦除第一個消息,並設置消息爲零qtty,在用戶混淆屏幕上兩個消息閃爍笨拙。
很抱歉,如果它太長了......這裏是您需要的頁面看到:http://www.micontrol.cl/~mvargas/wordpress/wp-transatacama/reservas-rapidas/form-reservas.php
第一'if'可製成'如果(!數據){' – redDevil 2012-01-18 19:56:24