我正试图弄清楚PayPal问题。
我在页面上有多个“立即购买”按钮,我需要为所有按钮设置一个值。
“立即购买”按钮元素都具有相同的ID。
每个'立即购买'按钮代表许可证范围,所以有'1-5','6-10','11 -20等。我有一个版本列表,它们被删除在页面中如下在循环中:
$strWeights1 .= "<span id='1".$row['Tag']."' onclick='select_weight(this.id)' class='linkoff'>". $row['Tag'] . "</span> | ";
我可能会想到这一点,但在所有“立即购买”按钮中设置所选“版本”的最佳方法是什么?
我正在考虑使用paypal变量'item_number'
干杯
就像我说按钮来自PayPal一样,我无法控制那些字段的命名,因此我遇到了问题。
好的,所以选择权重功能只会使跨度像href标签一样工作,打开和关闭'按钮'。
function select_weight(value){
value = value.substr(1);
document.forms["fontweight"]["fw"].value = value;
//this.forms["item_number"].value = value;
thin = document.getElementById('1Thin');
if(thin != null){
thin.className = "linkoff";
thin = document.getElementById('2Thin');
thin.className = "linkoff";
}
light = document.getElementById('1Light');
if(light != null){
light.className = "linkoff";
light = document.getElementById('2Light');
light.className = "linkoff";
}
book = document.getElementById('1Book');
if(book != null){
book.className = "linkoff";
book = document.getElementById('2Book');
book.className = "linkoff";
}
medium = document.getElementById('1Medium');
if(medium != null){
medium.className = "linkoff";
medium = document.getElementById('2Medium');
medium.className = "linkoff";
}
bold = document.getElementById('1Bold');
if(bold != null){
bold.className = "linkoff";
bold = document.getElementById('2Bold');
bold.className = "linkoff";
}
heavy = document.getElementById('1Heavy');
if(heavy != null){
heavy.className = "linkoff";
heavy = document.getElementById('2Heavy');
heavy.className = "linkoff";
}
black = document.getElementById('1Black');
if(black != null){
black.className = "linkoff";
black = document.getElementById('1Black');
black.className = "linkoff";
}
//alert(value);
fontweight1 = document.getElementById('1'+value);
fontweight2 = document.getElementById('2'+value);
fontweight1.className = "linkon";
fontweight2.className = "linkon";}
这是按钮的代码,它在页面中大约16次,'item_name'和'hosted_button_id'每次都改变:
<form target=\"paypal\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" onsubmit=\"return validateForm()\" >
<input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">
<input type=\"hidden\" name=\"hosted_button_id\" value=\"xxxxxxxx\">
<input type=\"hidden\" name=\"item_name\" value=\"".$strProdName." : 1-5 terminals \">
<input type=\"hidden\" name=\"item_number\" value=\" [set this value] \">
<input type=\"image\" onMouseOver=\"this.src='images/paypalon.png';\" onMouseOut=\"this.src='images/paypaloff.png';\" src=\"images/paypaloff.png\" border=\"0\" name=\"submit\" alt=\"PayPal — The safer, easier way to pay online.\">
<input type='hidden' name='notify_url' value='http://ipn.php'>
</form>
我一直在考虑如何解决这个问题。我可以使用表单验证功能来访问特定表单并以这种方式设置值吗?我一直在努力尝试这一点。
function validateForm(form)
{
var x=document.forms["fontweight"]["fw"].value;
if (x==null || x=="")
{
alert("Hold on a moment, you need to select a weight before hitting the ‘Buy’ button.");
return false;
}
else{
field = document.form;
//this.form['item_number'].value = x;
alert(field['item_name'].value);
return false;
}
}
表单标记中有此调用
onsubmit="return validateForm(this.form)"
我是否在正确的轨道&gt;或者我应该抛弃它?
答案 0 :(得分:0)
好的,看起来我已整理出来了。我已使用'onClick'将验证移至按钮。我正在传递(this.form)并使用它来获取元素。
虽然我很欣赏多个具有相同名称的ID是错误的,但是PayPal按钮的名称与我的代码相同。