Я пытаюсь отправить данные в первую очередь, прежде чем приступить к оплате PayPal, но они просто заполняются при нажатии кнопки Отправить. Это не будет продолжаться, когда я нажму "отправить", я использую ajax для отправки формы.
Я пытался найти способ оплаты PayPal, который вставляет данные в MySQL, а затем перейти к оплате PayPal
Это мой index.php
<?php
$amount = "500";
//<input type="submit" value="Reserve" name="insert">
?>
<header>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script>
$(function () {
$('#senrollnow').on('submit', function (e) {
var form = $(this);
if(!form.hasClass('pending')) {
e.preventDefault();
form.addClass('pending');
$.ajax({
type: 'post',
url: 'insert.php',
data: $('#senrollnow').serialize(),
success: function () {
form.submit();
alert('form was submitted'+data);
}
});
}
});
$('#freeform').on('submit', function (e) {
//e.preventDefault(); //prevents the form to submit
alert("Your request has been sent! Please check your email within 12 hours for my feedback. Thank you.");
});
});
</script>
</header>
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" name="ligit" method="POST" id="senrollnow" target="_top" >
<label>Name</label>
<input type="text" name="name" required>
<label>Phone</label>
<input type="text" name="contactnum" required>
<label>Address</label>
<input type="text" name="address" required>
<label>Date Check In</label>
<input type="date" name="checkin" required>
<label>Date Check Out</label>
<input type="date" name="checkout" required>
<label>Room Type</label>
<select name="roomtype" required>
<option value="Standard">Standard</option>
<option value="Deluxe">Deluxe</option>
</select>
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="sajol.mikefrancisfil@gmail.com">
<label>10$ Reservation Fee</label>
<input type="hidden" name="amount" value="<?php echo $amount;?>" readonly>
<input type="hidden" name="shipping" value="0">
<input type="hidden" name="item_name" value="Reservation Fee">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="PHP">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="hidden" name="return" value="https://net.tutsplus.com/payment-complete/">
<br /><br />
<input type="button" value="Submit" name="submit">
</form>
и это мой insert.php
<?php
$host = "localhost";
$user = "root";
$password ="";
$database = "db_ohrsv3";
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// connect to mysql database
try{
$connect = mysqli_connect($host, $user, $password, $database);
} catch (mysqli_sql_exception $ex) {
echo '<p style="color:red">Connection Error</p>';
}
function getPosts()
{
$posts = array();
$posts[0] = $_POST['name'];
$posts[1] = $_POST['contactnum'];
$posts[2] = $_POST['address'];
$posts[3] = $_POST['checkin'];
$posts[4] = $_POST['checkout'];
$posts[5] = $_POST['roomtype'];
return $posts;
}
if(isset($_POST['submit']))
{
$data = getPosts();
$insert_Query = "INSERT INTO payments (name, contactnum, address, checkin, checkout, roomtype) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]')";
try{
$insert_Result = mysqli_query($connect, $insert_Query);
if($insert_Result)
{
if(mysqli_affected_rows($connect) > 0)
{
echo '<p style="color:red">Data Inserted</p>';
}else{
echo '<p style="color:red">Data Not Inserted</p>';
}
}
} catch (Exception $ex) {
echo '<p style="color:red">Error Insert </p>'.$ex->getMessage();
}
}
header("location: index.php");
?>
Не знаю, что не так и почему его не отправляют.