0
フォームを検証する必要があります。成功した後、別のPHPファイルにリダイレクトする必要があるPHPファイルにすべての値を渡しますPOST、それは可能ですか?POSTで成功した後、Ajaxが別のページにリダイレクトする
私が行うための最善の方法ならばこれは私のAjaxコードであるので、私はすべての提案に開いていることをを知らない
:
$("form#Reservation").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: 'confirmreservation.php',
type: 'POST',
data: formData,
async: false,
success: function (data) {
values=data.split('|');
one=values[0];
two=values[1];
switch (one)
{
case '1':
// here I need something like this
// POST(two) to payment.php
break;
case '2':
$("#reservation-fields").css("visibility","visible");
break;
case '3':
$("#reservation-fields").css("visibility","hidden");
$("#personal-fields").css("visibility","visible");
break;
case '4':
$("#personal-fields").css("visibility","hidden");
$("#arrival-fields").css("visibility","visible");
break;
case '5':
$("#arrival-fields").css("visibility","hidden");
$("#departure-fields").css("visibility","visible");
break;
case '6':
$("#departure-fields").css("visibility","hidden");
$("#details-fields").css("visibility","visible");
break;
default:
alert(data);
}
},
cache: false,
contentType: false,
processData: false
});
return false;
});
そして、これは私のPHPファイル「confirmreservation.phpです「
<?php
require "conexion.php";
require "functions.php";
if ($_POST['service']==null||$_POST['destination']==null||$_POST['people']==null||$_POST['vehicle']==null)
{
echo "2|0";
}
else
{
if($_POST['service'] == 1)
{
if ($_POST['fname']==null||$_POST['lname']==null||$_POST['email']==null||$_POST['phone']==null)
{
echo "3|0";
}
else
{
if ($_POST['arrival-date']==null||$_POST['arrival-time']==null||$_POST['arrival-airline']==null||$_POST['arrival-flight']==null)
{
echo "4|0";
}
else
{
if ($_POST['departure-date']==null||$_POST['departure-time']==null||$_POST['departure-pick']==null||$_POST['departure-airline']==null||$_POST['departure-flight']==null)
{
echo "5|0";
}
else
{
if ($_POST['message']==null||$_POST['payment']==null)
{
echo "6|0";
}
else
{
$ID = 0;
$Consult = $Conexion->query('SELECT ID_Client FROM clients ORDER BY ID_Client DESC LIMIT 1');
while ($Fila = $Consult->fetch_assoc()) {
$ID = $Fila['ID_Client'] + 1;
}
if($ID == 0){ $ID = 1; }
if($_POST['lang'] == "sp") {
$Arrival = Formato_es_to_date($_POST['arrival-date']);
$Departure = Formato_es_to_date($_POST['departure-date']);
} elseif($_POST['lang'] == "en")
{
$Arrival = Formato_en_to_date($_POST['arrival-date']);
$Departure = Formato_en_to_date($_POST['departure-date']);
}
$Conexion->autocommit(false);
$Queries=true;
$Conexion ->query("INSERT INTO clients
(ID_client,Client_fname,Client_lname,Client_email,Client_phone) VALUES
('".$ID."','".$_POST['fname']."','".$_POST['lname']."','".$_POST['email']."','".$_POST['phone']."')") ? null : $Queries=false;
$Conexion ->query("INSERT INTO reservation
(Reserv_service,Reserv_destination,Reserv_people,Reserv_vehicle,Reserv_client,Reserv_arrival_date,Reserv_arrival_time,Reserv_arrival_airline,Reserv_arrival_flight,Reserv_departure_date,Reserv_departure_time,Reserv_departure_airline,Reserv_departure_flight,Reserv_departure_pick,Reserv_message,Reserv_payment) VALUES
('".$_POST['service']."','".$_POST['destination']."','".$_POST['people']."','".$_POST['vehicle']."','".$ID."','".$Arrival."','".$_POST['arrival-time']."','".$_POST['arrival-airline']."','".$_POST['arrival-flight']."','".$Departure."','".$_POST['departure-time']."','".$_POST['departure-airline']."','".$_POST['departure-flight']."','".$_POST['departure-pick']."','".$_POST['message']."','".$_POST['payment']."')") ? null : $Queries=false;
if($Queries == false)
{
$Conexion->rollback();
echo "Error, please contact the provider";
}
$Conexion->commit();
echo "1|".$ID;
}
}
}
}
}
}
mysqli_close($Conexion);
?>
通常のフォーム送信を使用すると、デフォルトでリダイレクトされます – adeneo
返信いただきありがとうございます@adeneo、あなたはajaxなしで意味ですか? –
空のフィールドのアラートを追加するにはどうすればよいですか?説明はしませんでしたが、ケース1が成功した場合、空のフィールドのアラートが表示されるので、Ajax @adeneoを使用している理由は –