2016-06-14 6 views
0

私が現在取り組んでいるページは、オンラインパブリッシャーのダッシュボードです。それが動作する方法は、各記事のエディタフォームのインスタンスを作成するためにforeachループを使用することです。私がしようとしているのは、ページの下部に小計に値を追加できるチェックボックスを各インスタンスに追加することです。私は出力が同じ形式の中に含まれている場合にのみ動作させることができます。Javascript:複数のフォームを使用して単一の出力を返す

だから私の質問は、実際には次のとおりです。複数のフォームからの入力を使用して、単一の出力を返すようにする方法はありますか?各インスタンスの

簡体字PHPコード:ここ

foreach ($Articles as $idx => $Article){ 
    echo <form action='/gatekeeper.php' method='POST' target='_SAVE{$Article["ID"]}' onchange='submit()'> 
    echo <input type="checkbox" onClick="checkTotal()" /> 
} 

とJavaScriptコードです。複数の要素 -

function checkTotal() { 
document.listForm.total.value = ''; 
var sum = 0; 
for (i=0;i<document.listForm.choice.length;i++) { 
    if (document.listForm.choice[i].checked) { 
    sum = sum + parseInt(document.listForm.choice[i].value); 
    } 
} 
document.listForm.total.value = sum; 

}

+2

"getElementsByName" をしてみてください。いくつかの要素には単一の '.value'がありません。 –

+0

' getElementsByName'と 'getElementById'を混同していると思います。 'document.getElementsByName(" inches ")'は 'document.articleAdd.inches'と同じチェックボックスのリストを返します。 – Barmar

+0

私はあなたがやりたいことを得られないと思いますが、とにかくここにあなたのために修正するいくつかのエラーがあります。 'document.getElementsByName(" inches ")。valueは未定義です。配列を取得する場合は、単に 'document.getElementsByName(" inches ")'を実行してください。 'document.articleAdd.inches.value'を設定するには' document.articleAdd ["inches"] = inches; 'を実行する必要があります。それは、あなたのforループで名前のインチで入力にアクセスする方法もそうです: 'for(i = 0; i KRONWALLED

答えて

0

この

function addToTotal(){ 
var sum = 0; 
var inches = document.articleAdd.inches.attributes['value'].value; 
document.articleAdd.inches.value = inches; 
for (i=0;i<document.articleAdd.inches.length;i++) { 
    if (document.articleAdd.inches[i].checked) { 
    sum = sum + parseInt(document.articleAdd.inches[i].value); 
    } 
} 
document.articleAdd.inches.value = sum; 
} 
関連する問題