我有一個腳本,用於計算每個表單中的值並顯示計算值。在最後它也計算所有div的2表單中字段的名稱屬性
下面是HTML代碼中已經計算值:
<td>
<div>
<input name="r" class="rate" type="text" maxlength="255" size="5" value />
<input name="p" class="pack" type="text" maxlength="255" size="5" value />
<span class="amount"></span>
</div>
</td>
<td>
<div>
<input name="r" class="rate" type="text" maxlength="255" size="5" value />
<input name="p" class="pack" type="text" maxlength="255" size="5" value />
<span class="amount"></span>
</div>
</td>
的問題是,我希望把所有字段的形式,然後將它們提交到數據庫。 但是,所有div都包含名稱爲「r」和「p」的兩個輸入字段。
所以,我有點卡在這裏,因爲我不知道如何使名稱唯一或如何讓他們使用POST傳遞給數據庫。
這是計算腳本如下:
<script type="text/javascript">//<![CDATA[
//any time the amount changes
$(document).ready(function() {
$('input[name=r],input[name=p]').change(function(e) {
var total = 0;
var $row = $(this).parent();
var rate = $row.find('input[name=r]').val();
var pack = $row.find('input[name=p]').val();
total = parseFloat(rate * pack);
//update the row total
$row.find('.amount').text(total);
var total_amount = 0;
$('.amount').each(function() {
//Get the value
var am= $(this).text();
console.log(am);
//if it's a number add it to the total
if (IsNumeric(am)) {
total_amount += parseFloat(am, 10);
}
});
$('.total_amount').text(total_amount);
});
});
//isNumeric function Stolen from:
//http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric
function IsNumeric(input) {
return (input - 0) == input && input.length > 0;
}
//]]>
</script>
它很大程度上取決於將接收此表單的服務器端腳本。瀏覽器沒有問題提交一個表單,其中有幾個輸入名稱相同;接收腳本可能會有。例如,PHP不支持共享相同名稱的輸入,並且只會保留最新的發生,_unless_您將輸入命名爲'r []'和'p []',在這種情況下,PHP會將它們視爲值的數組,您可以處理所有輸入的值。 – lanzz
所以,例如,如果我使用名稱=「p []」並通過使用$ p = $ _ POST獲取值[POST] ['p []'];它應該工作? – lStoilov
不,如果您使用'name =「p []」',在PHP端您會收到它爲'$ _POST ['p']',這將是一個數組。 [某些文檔](http://www.php.net/manual/en/language.variables.external.php)如何? – lanzz