感谢社区提供的大力帮助。
这是关于Paypal的问题。下面的代码创建了一个立即购买的非托管按钮。我希望能够运行我的geoTestArray.php代码,目前只是包含在内,当用户按下“立即购买”按钮时,而不是当按钮显示在页面上时。
这有可能吗?
提前致谢,
乔
<?php
include ('geoTestArray.php');
echo "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">
<input type=\"hidden\" name=\"business\" value=\"shop@mysite.com\">
<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>";
?>
答案 0 :(得分:0)
您只能显示包含一个输入的表单,例如item_id
提交此表单后,您搜索项目详细信息,在后端执行geoTestArray.php,之后您可以使用header("location: $query");
这是我将如何做的:
<?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>
希望我能帮助你! :d
答案 1 :(得分:0)
感谢大家的评论和解决方案选项。我最终选择修改我在页面上的onSubmit javascript,添加:
function InterceptForm(formObj) {
var newshipto = httpGet('geoTestArray.php');
formObj.shipto.value = newshipto;
}
上面的代码使用了在其他stackoverflow帖子中发布的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>
干杯,
乔