0

ペイパルの問題を解決しようとしています。

ページに複数の「今すぐ購入」ボタンがあり、すべてのボタンに値を設定する必要があります。

「今すぐ購入」ボタン要素はすべて同じ 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)"

私は正しい道を進んでいますか?それとも捨てるべきですか?

4

1 に答える 1

0

わかりました、これで整理できたようです。「onClick」を使用して検証をボタンに移動しました。(this.form) を渡し、これを使用して要素に到達します。

同じ名前の複数の ID が間違っていることは理解していますが、私のコードではなく PayPal ボタンの名前が同じです。

于 2012-11-29T18:24:43.003 に答える