ペイパルの問題を解決しようとしています。
ページに複数の「今すぐ購入」ボタンがあり、すべてのボタンに値を設定する必要があります。
「今すぐ購入」ボタン要素はすべて同じ 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 からのものだと言ったように、そこのフィールドの名前を制御することはできません。したがって、私が直面している問題です。
OK、重みの選択関数は、スパンを 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)"
私は正しい道を進んでいますか?それとも捨てるべきですか?