我創建了一個php註冊頁面,當頁面第一次加載時,將用戶的數據從前一頁保存到我的數據庫中,並且還顯示一個按鈕,指示用戶在外部網站上付款點擊它。我想編輯頁面,只在用戶點擊付費按鈕時纔將數據保存到數據庫。我可以讓這個按鈕點擊事件調用一個PHP函數或PHP頁面來處理這個處理,並讓用戶繼續在外部網站上付款嗎?我正在使用一個貝寶立即購買按鈕,它基本上是一個隱藏輸入值的表單。我猜我必須使用Ajax,但我不知道如何。從html按鈕中調用PHP函數點擊
編輯 只是爲了澄清我即將做的事情。我想在他們付費之前暫時將註冊數據保存到我的數據庫中,並且一旦他們支付了該數據將被轉移到另一個表格,所以我知道它已經完成。我想在點擊付費按鈕時保存臨時註冊數據。具有此付費按鈕的同一頁面也會在加載時將臨時註冊數據保存到數據庫中。我想改變它,這樣數據就不會被保存,直到用戶至少點擊付費。否則,如果由於某種原因用戶停在這裏,我最終會收到一個數據庫不完整的註冊。
編輯 這是我的嘗試,但它似乎並沒有工作。
tempregister1.php
<?php
$fname=$_POST['fname];
echo' <!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<script>
$(#submitbtn).click(function() {
var fname = '.$fname.';
$.ajax({
type: "POST",
url: "tempregister2.php",
data: {fname:fname}
})
});
</script>
</head>
<body>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="image" name="submit" id="submitbtn" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" >
</form>
</body>
</html>
'; //end php echo
?>
tempregister2.php
<?php
$fname=$_POST['fname'];
require_once('db.php');
$conn = db_connect();
$result = $conn->prepare("INSERT into temp (FirstName) VALUES(?)");
$result -> bind_param('s',$fname);
$result->execute();
?>
編輯 問題就迎刃而解了: 我需要tempregister1.php
腳本之前添加此<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(#submitbtn).submit(function() {
不知道它是否有所作爲,但我也將它從單擊事件更改爲提交事件,並更改了var fname = $('。$ _ POST ['fname']。'); to var fname ='。$ _ POST ['fname']。';
謝謝大家誰幫助
顯示您的嘗試 –
您無法使用按鈕執行PHP函數。你可以做的是發送一個請求到你的服務器上的一個URL,用它接收的POST數據執行PHP函數。這是客戶端 - 服務器模型的工作原理。 – elclanrs
瞭解AJAX。 – Barmar