0

100行の注文フォームテーブルがあります。これらのそれぞれについて、ユーザーが注文したい製品を選択できるポップアップ付きのボタンがあります。

私はネット上で見つけたjavscriptを適応させました。これは以下のコードに従って機能します。私の問題は、100行あり、各製品の名前がsku1、sku2、sku3 ... sku4、sku5であるということです。javascriptコードのインスタンスを100個作成したくないですか?

入力フィールドsku3の値をポップアップに渡して、値を送り返すフィールドがわかるようにする方法を探しています。

どんな助けでもいただければ幸いです。

私のメインページコードは次のとおりです:(関連コードのスニペット-実際のドキュメントで100行)

<tr id="r1">  
    <td>
        <input size=10  type=number id=sku1 name=sku1>
        <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');">
    </td>
    <td>
        <input type="number" name="qty1" id="qty1">
    </td>   
</tr>
<tr id="r2">  
    <td>
        <input size=10  type=number id=sku2 name=sku2>
        <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');">
    </td>
    <td>
        <input type="number" name="qty2" id="qty2">
    </td>   
</tr>
<tr id="r3">  
    <td>
        <input size=10  type=number id=sku3 name=sku3>
        <img src=q.png border=0 onClick="window.open('popupselector.php','orderform','width=500,height=600');">
    </td>
    <td>
        <input type="number" name="qty3" id="qty3">
    </td>   
</tr>

popupselector.phpのjavascriptコードは次のとおりです。

<SCRIPT LANGUAGE="JavaScript">

function sendValue(s){
var selvalue = s.options[s.selectedIndex].value;
window.opener.document.orderform.sku1.value = selvalue;
window.close();
}

</script>
<form name=selectform>

<SELECT NAME=selectmenu size=30> 
<?=$options?> 
</SELECT> 

<input type=button value="Select" onClick="sendValue(this.form.selectmenu);">
</form>

javascriptにsku1がある場合、ユーザーがクリックする行に応じてこれを変数にします。

window.opener.document.orderform.sku1.value = selvalue;

100個のpopupselector.phpページが必要になるため、sku1、sku2、sku3をこれらのページにハードコーディングしたくありません。

よろしく、ライアン・スミス

4

1 に答える 1

1

idアイテムの変数を作成してから、ループでクエリを実行できると思います。

function sendValue(s){
    for (var i = 1; i < 101; i++) {
        var selvalue = s.options[s.selectedIndex].value;
        var itemId = 'sku' + i;
        var item = document.getElementById(itemId).value = selvalue;
    }
    window.close();
}

selvalue各ループで が変化しない場合は、ループの外に移動できます

- - フォームから JavaScript ポップアップに ID を送信するように更新 - - DOM を使用して、画像がクリックされる直前の入力の ID にアクセスできます。

function sendValue(s){
    var inputField = s.previousSibling; // will be the space between <input> and <img>
    if (inputField.nodeName != 'INPUT') 
        inputField = inputField.previousSibling; // will be the <input> node

    // Here you can get id, name... attributes with: inputField.getAttribute('id'), inputField.getAttribute('name')
    window.close();
}

いくつかの考え: テーブルの行が PHP コードから生成されている場合、ID を img タグに直接挿入して、popupselector.php 内に戻してください。

<img src=q.png border=0 onClick="window.open('popupselector.php?<?=$rowId ?>','orderform','width=500,height=600');">
于 2012-04-26T12:33:15.370 に答える