2013-10-12 30 views
0

並感謝您的社區提供的巨大幫助。運行自己的PHP腳本按下貝寶現在購買按鈕

這是一個關於貝寶的問題。下面的代碼創建一個現在購買的非託管按鈕。我希望能夠運行我的geoTestArray.php代碼,當用戶按下「立即購買」按鈕時,而不是當按鈕顯示在頁面上時,該代碼目前只包括在內。

這可能嗎?

由於提前,

<?php 
include ('geoTestArray.php'); 
echo "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\"> 
<input type=\"hidden\" name=\"business\" value=\"[email protected]\"> 
<input type=\"hidden\" name=\"cmd\" value=\"$cmd\"> 
<input type=\"hidden\" name=\"amount\" value=\"$price\"> 
<input type=\"hidden\" name=\"shipping\" value=\"$shipping\"> 
<input type=\"hidden\" name=\"currency_code\" value=\"$currency\"> 
<input type=\"hidden\" name=\"shipto\" value=\"$shipto\"> 
<input type=\"hidden\" name=\"item_name\" value=\"$title\">"; 
if ($cmd == 'cart') { 
echo "<input type=\"hidden\" name=\"add\" value=\"1\">"; 
} 
include('./quantities2.php'); 
echo "<input type=\"hidden\" name=\"lc\" value=\"US\"> 
<input class=\"submit\" type=\"image\" src=\"$button\" border=\"0\" name=\"submit\" alt=\"$altaction\"> 
<img alt=\"\" border=\"0\" src=\"https://www.paypal.com/en_US/i/scr/pixel.gif\" width=\"1\" height=\"1\"> 
</form>"; 
?> 
+1

可能,但有可能是一個 更好的方法。 geoTestArray是做什麼的? –

+0

它基本上找出了訪問瀏覽器的國家位置。由於我使用的是付費服務,因此當有人真的按下購買按鈕時,我只想使用令牌,而不是在頁面加載時使用。其實我已經有一個在腳本上執行的腳本,但這是一個JavaScript,而我的geoTestArray代碼是PHP,所以要麼做一個簡單的方法來做我想做的事情,要麼我會嘗試將我的PHP重寫爲JavaScript 。 – user1030520

回答

0

可以顯示僅與一個輸入端的形式,例如ITEM_ID。

<?php 
if(isset($_POST['do_action']) && $_POST['do_action'] != "") { 
    //check for non-empty item_id field 
    //run your geoTestArray.php script 
    //get item details from database and build your paypal query 
    $query = "https://www.paypal.com/cgi-bin/webscr&cmd=_xclick"; // add rest of paypal request fields separated by & 
    header("Location: $query"); 
} 
?> 
<form action='' method='post'> 
    <input type='hidden' name='item_id' value'your_item_id'> 
    <input type='submit' name='do_action' value='Buy'> 
<form> 

希望我:
提交此表,您搜索項目的詳細信息,在後臺執行你geoTestArray.php之後,你可以重定向你的用戶使用header("location: $query");

這裏是我會怎麼做,以貝寶後幫助你! :d

+0

嗨,teoflavian。感謝您的解決方案。它看起來簡單易用。我會試着看看我能否使它工作。 – user1030520

0

感謝大家的意見和解決方案選項。我已經最終選擇修改的onsubmit的javascript我有我的網頁上,通過添加:

function InterceptForm(formObj) { 
    var newshipto = httpGet('geoTestArray.php'); 
    formObj.shipto.value = newshipto; 
} 

上面的代碼利用張貼在這個其它計算器職位的HTTPGET()函數:

HTTP GET request in JavaScript?

完成拼圖:

下面的代碼是在HTML中我的網頁

<script language="javascript"> 
// During onLoad, loop through all forms and for each form object do something 
function InterceptForm(formobj) { 
    formobj.onsubmit = function ff() { 
     interceptform(formobj); 
    }; 
} 
</script> 

下面的代碼收集各種形式的網頁上,並運行在每個以上的JavaScript(注:你可能希望把你的形式,使您只有在所有形式的有關表格運行腳本,而不是):

<script language="javascript"> 
function GetForms() { 
var formsCollection = document.getElementsByTagName("form"); 
for(var i=0;i<formsCollection.length;i++) 
{ 
    if (formsCollection[i].name != "seecart") 
    { 
    InterceptForm(formsCollection[i]); 
    } 
} 
     return true; 
} 
</script> 

下面的代碼是在onLoad功能:

<script language="javascript"> 
function onLoadFunction() { 
    GetForms(); 
    return true; 
} 
</script> 

乾杯,