2014-02-23 37 views
0

我創建了一個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']。';
謝謝大家誰幫助

+0

顯示您的嘗試 –

+0

您無法使用按鈕執行PHP函數。你可以做的是發送一個請求到你的服務器上的一個URL,用它接收的POST數據執行PHP函數。這是客戶端 - 服務器模型的工作原理。 – elclanrs

+3

瞭解AJAX。 – Barmar

回答

0

HTML

<input type='button' id='yourButton' value='Button' > 

AJAX(使用jQuery)AJAX DOCUMENTATION

$(document).ready(function(){ 
$('#yourButton').click(function(){ // Your Click Event here 
$.ajax({ 

//your AJAX call here 


     }); 



}); 
}); 

PHP

<?php 

/*Your php Code goes here*/ 

?> 
1

你需要使用ajax來調用一個php頁面函數。您可以將數據從HTML傳遞到PHP,然後執行所需操作並重定向到任何外部站點。

向您發送此點擊函數中的數據給PHP。你需要給Ids提供HTML表單字段,然後需要在JavaScript函數中選擇這些字段。

$('.button').click(function() { 
    var email= $('#email'); // example email field 
    $.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: { name: "John" , email:email } 
    }).done(function(msg) { 
     alert("Data Saved: " + msg); 
    });  
}); 
+0

我試過了,但似乎沒有工作。我是新來的。試圖找出如何發佈。一旦我做了,我會發布我的嘗試。 – techie

+0

你面臨的問題是什麼?任何錯誤 –

+0

我沒有收到錯誤。該頁面就像它應該去貝寶網站,但沒有保存到數據庫。我發佈了我上面嘗試的內容。我錯過了什麼嗎? – techie