2013-04-15 23 views
0

我想將表中的某些特定數據發送到特定的IP。另一個IP是一個微控制器,我需要更改每個已更改的數據。 但應用/重啓按鈕只發送整個變量。我想更改按鈕更改/重新啓動標籤,以便它發送塊中的每個數據而不是整個數據。javascript在表中發送數據

只發送在一個給定的塊中的數據的
<script> 
function validateForm() 
{ 
var x=document.forms[myForm][fname].value; 
if (x==null || x==) 
    { 
    alert(First name must be filled out); 
    return false; 
    } 
} 
</script> 
</head> 
<body> 
<form name=myForm onsubmit=return validateForm() method=post> 
<table> <tr> 
    <td>Device Info :</td> 
    <td><input type=text name=dev-info id=1 size="3" value=></td> 
    <td>.<input type=text name=dev-info id=11 size="3" value=></td> 
    <td></td> 
    <td></td> 
    <td></td> 
    <td></td> 
    <td> <input type=submit value=Apply/change></td> 
    </tr> 
    <tr> 
    <td>MAC Adress :</td> 
    <td><input type=text name=mac-addr id=2 size="3"></td> 
    <td>.<input type=text name=mac-addr id=21 size="3"></td> 
    <td>.<input type=text name=mac-addr id=22 size="3"></td> 
    <td>.<input type=text name=mac-addr id=23 size="3"></td> 
    <td>.<input type=text name=mac-addr id=23 size="3"></td> 
    <td>.<input type=text name=mac-addr id=23 size="3"></td> 
    <td> <input type=submit value=Apply/change></td> 
</tr> 
<tr> 
    <td>IP Adress :</td> 
    <td><input type=text name=ip-addr id=3 size="3"></td> 
    <td>.<input type=text name=ip-addr id=31 size="3"></td> 
    <td>.<input type=text name=ip-addr id=32 size="3"></td> 
    <td>.<input type=text name=ip-addr id=33 size="3"></td> 
<td></td>\r\n <td></td> 
<td> <input type=submit value=Apply/change></td> 

</tr> 
<tr> 
    <td>Gateway Adress :</td> 
    <td><input type=text name=gate-addr id=4 size="3"></td> 
    <td>.<input type=text name=gate-addr id=41 size="3"></td> 
    <td>.<input type=text name=gate-addr id=42 size="3"></td> 
    <td>.<input type=text name=gate-addr id=43 size="3"></td> 
    <td></td> 
    <td></td> 
<td> <input type=submit value=Apply/change></td> 
    </tr> 
    <tr> 
    <td>Subnet Mask :</td> 
    <td><input type=text name=sub-msk id=5 size="3"></td> 
    <td>.<input type=text name=sub-msk id=51 size="3"></td> 
    <td>.<input type=text name=sub-msk id=52 size="3"></td> 
    <td>.<input type=text name=sub-msk id=53 size="3"></td> 
    <td></td> 
    <td></td> 
    <td> <input type=submit value=Apply/change></td> 
    </tr> 
    <tr> 
    <td>Ntp Server IP :</td> 
    <td><input type=text name=ntp-ip id=6 size="3"></td> 
    <td>.<input type=text name=ntp-ip id=61 size="3"></td> 
    <td>.<input type=text name=ntp-ip id=62 size="3"></td> 
    <td>.<input type=text name=ntp-ip id=63 size="3"></td> 
    <td></td> 
    <td></td> 
    <td> <input type=submit value=Apply/change></td> 
    </tr> 
</table> 
<input type=submit action=http://192.168.1.250 value=Apply/Reboot> 
</form> 
</body> 
+1

「塊中的每個數據而不是整個數據」這是什麼意思? – BNL

+0

每塊有一個特定的按鈕,當我推它,它會發送整個變量 –

回答

0

一種方法是給每個塊分離成其自己的HTML形式,以便提交按鈕被提交僅與該塊的值。這裏的缺點是,您將無法一次使用整體提交按鈕提交整個表單。

另一種方法是讓每塊提交按鈕觸發一個只發送與該塊有關的數據的javascript函數。這可以通過Ajax請求完成,也可以通過將重定向到的位置的查詢字符串中的相關值進行重定向和傳遞來完成。這可能會通過設置一個JavaScript函數來處理,然後通過jQuery的.click()功能,通過document.getElementById("buttonId").Click,或者通過將onclick="relevantFunction();return false;"屬性添加到按鈕來將其分配給按鈕來完成。

請注意,如果你走在每個塊的路線,你要麼需要切換提交按鈕是按鈕的類型,而不是類型的提交,否則將需要使用return false;,讓他們從提交的整體形式。有關這樣做的示例,請參見this answer

下面是通過第一個塊的onclick實現採用該方法的示例。在JavaScript:

function SingleSectionSubmit(inputIds, name, targetUrl) 
{ //inputIds needs to be an array of the IDs for the section 
    var querystring = ""; 

    //build requestParameter value; since each block is only one type of input, we can combine these together as long as your processing page supports that (and if it doesn't you will need to customize) 
    var requestParam = ""; 
    for (var i = 0; i < inputIds.length; i++) 
    { requestParam = requestParam + inputIds[i] + "."; } 
    requestParam = requestParam.substring(0, requestParam.length - 1); //get rid of the trailing period 

    querystring = "?" + name + "=" + requestParam; 

    //perform the redirect 
    window.location(targetUrl + querystring); 
} 

然後在HTML你會作出相關的按鈕進入:

<input type="submit" value="Apply/change" onclick="SingleSectionSubmit(['1','11'], 'dev-info', 'http://192.168.1.250');"> 

再次,這假定您(在此情況下http://192.168.1.250)提交到頁面能夠使用查詢字符串中的GET變量處理請求。

+0

看起來他正在發送數據到不同的服務器,所以ajax提交可能不會工作。 – BNL

+0

我的問題是當我分開塊時,整個塊是不規則的。所以我決定在表中使用它們 –

+0

你可以給一些代碼plz –