사용자 선택에 따라 부분적으로로드 할 양식이 있습니다.jQuery if() 빈 Ajax 응답을 묻는 나쁜 작동
사용자가 날짜를 선택하면 해당 날짜에 사용할 수있는 주식 (열차 여행의 좌석)을 검색합니다.
나는 3 개 IF()
문장
- 먼저 되세요
- 둘째로, 응답이 숫자인지 (이전에 지정하지 않은 경우에만 미안 해요) 숫자가 0보다 큰지 묻습니다. 그래서 나는 qtty를 업데이트한다. 따라서 costumer는 존재하지 않는 좌석을 살 수 없습니다.
- 다른 사람이 실패하고 qtty가 0 인 경우 고객에게 해당 날짜의 여행이 가득 찼다는 메시지를 보내면 여행 할 다른 날짜를 선택해야합니다.
내가 가진 코드는 이것이다 :
$.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
(다른 코드는 보여줍니다)을 입력하고 메시지를 설정합니다 제로 큐티 (zero qtty)를 위해, 사용자의 혼동을 위해 스크린에 두 메시지를 어색하게 깜박입니다. 그것은 여기 ... 너무 길어 당신이 볼 수 있도록 페이지 인 경우
죄송합니다 : 내가 제대로 이해 해요 경우 http://www.micontrol.cl/~mvargas/wordpress/wp-transatacama/reservas-rapidas/form-reservas.php
{로 평가하는 것이' – redDevil