目前小弟有一个困扰,我有一个网页,需要将表单中的数据通过checkbox多选中,并把选中行的第二列、以及另外一个文本框输入的内容然后存入到一个配置文件中(服务器端),然后在服务器端调用一个perl脚本执行发短信的功能。现在就是不知如何把js中取出的值存入到(服务器端)文件中,并调用perl脚本(不是cgi),请教各位达人了!
代码如下:
<form name="maintenancefrm" method="GET" action="/cgi-bin/ecc_sms_send.cgi" >
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1%"><img src="images/panel_top_left.png" width="10" height="25"></td>
<td width="98%" background="images/blue_scan_lines.png" class="tablehead" align="left" valign="middle">短信人员列表</td>
<td width="1%"><img src="images/panel_top_right.png" width="10" height="25"></td>
</tr>
<tr>
<td colspan="3"><table id="mainTab" cellspacing=0 cellpadding=0 width=100% border=0 class="tablebody">
<tbody>
<%
if(vector.size() != 0)
{
for(int i=0;i<vector.size();i++)
{
%>
<tr height="25">
<td class="tabletext" align="center" width="40">
<input type="checkbox" name="KeyFields" value="<%=vector.elementAt(i+1)%>"></td>
<td class="tabletext"><%=vector.elementAt(i)%></td>
<td class="tabletext"><%=vector.elementAt(i+1)%></td>
<td class="tabletext"><%=vector.elementAt(i+2)%></td>
</tr>
<%
i=i+2;
}
}
%>
</tbody>
</table></td>
</tr>
<tr><td> </td></tr>
</table>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1%"><img src="images/panel_top_left.png" width="10" height="25"></td>
<td width="98%" background="images/blue_scan_lines.png" class="tablehead" align="center" valign="middle">发送短信功能</td>
<td width="1%"><img src="images/panel_top_right.png" width="10" height="25"></td>
</tr>
<tr>
<td colspan="3">
<table cellspacing=0 cellpadding=0 width=100% border=0 class="tablebody">
<tbody>
<td> <textarea name=message rows=10 cols=50>[短信内容]</textarea> </td>
</tbody>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr><td> </td></tr>
<tr>
<td align="right"><input type="reset" name="reset" value=" 清除 " class="button"></td>
<td colspan="6" align="left">
<input type="button" name="send" value="发送" class="button" onClick="sendInfo()">
</td>
</tr>
</table></form>js部分的:
function sendInfo()
{
if(checkinput())
{
var arr = new Array();
table = document.getElementById("mainTab");
var rows = table.rows;
var str;
for(var i=0;i<document.maintenancefrm.elements.length;i++)
{
e = document.maintenancefrm.elements[i];
if(e.type=="checkbox")
{
if(e.checked == true)
{
arr.push(rows[i].cells[2].innerText);
} }
}
var sum = arr.length ;
for(var j=0;j<sum;j++)
{
//alert(arr[j]);
if (j == sum-1)
{
str += "arr[j]";
}
else
{
str += ",arr[j]";
} }
// document.maintenancefrm.action = "/cgi-bin/ecc_sms_send.cgi?num="+arr;
// document.maintenancefrm.submit();
//return true; var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("ecc_sms.txt", true);
tf.WriteLine("Testing 1, 2, 3.") ; }
else
{
//return false;
}
}
代码如下:
<form name="maintenancefrm" method="GET" action="/cgi-bin/ecc_sms_send.cgi" >
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1%"><img src="images/panel_top_left.png" width="10" height="25"></td>
<td width="98%" background="images/blue_scan_lines.png" class="tablehead" align="left" valign="middle">短信人员列表</td>
<td width="1%"><img src="images/panel_top_right.png" width="10" height="25"></td>
</tr>
<tr>
<td colspan="3"><table id="mainTab" cellspacing=0 cellpadding=0 width=100% border=0 class="tablebody">
<tbody>
<%
if(vector.size() != 0)
{
for(int i=0;i<vector.size();i++)
{
%>
<tr height="25">
<td class="tabletext" align="center" width="40">
<input type="checkbox" name="KeyFields" value="<%=vector.elementAt(i+1)%>"></td>
<td class="tabletext"><%=vector.elementAt(i)%></td>
<td class="tabletext"><%=vector.elementAt(i+1)%></td>
<td class="tabletext"><%=vector.elementAt(i+2)%></td>
</tr>
<%
i=i+2;
}
}
%>
</tbody>
</table></td>
</tr>
<tr><td> </td></tr>
</table>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1%"><img src="images/panel_top_left.png" width="10" height="25"></td>
<td width="98%" background="images/blue_scan_lines.png" class="tablehead" align="center" valign="middle">发送短信功能</td>
<td width="1%"><img src="images/panel_top_right.png" width="10" height="25"></td>
</tr>
<tr>
<td colspan="3">
<table cellspacing=0 cellpadding=0 width=100% border=0 class="tablebody">
<tbody>
<td> <textarea name=message rows=10 cols=50>[短信内容]</textarea> </td>
</tbody>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr><td> </td></tr>
<tr>
<td align="right"><input type="reset" name="reset" value=" 清除 " class="button"></td>
<td colspan="6" align="left">
<input type="button" name="send" value="发送" class="button" onClick="sendInfo()">
</td>
</tr>
</table></form>js部分的:
function sendInfo()
{
if(checkinput())
{
var arr = new Array();
table = document.getElementById("mainTab");
var rows = table.rows;
var str;
for(var i=0;i<document.maintenancefrm.elements.length;i++)
{
e = document.maintenancefrm.elements[i];
if(e.type=="checkbox")
{
if(e.checked == true)
{
arr.push(rows[i].cells[2].innerText);
} }
}
var sum = arr.length ;
for(var j=0;j<sum;j++)
{
//alert(arr[j]);
if (j == sum-1)
{
str += "arr[j]";
}
else
{
str += ",arr[j]";
} }
// document.maintenancefrm.action = "/cgi-bin/ecc_sms_send.cgi?num="+arr;
// document.maintenancefrm.submit();
//return true; var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("ecc_sms.txt", true);
tf.WriteLine("Testing 1, 2, 3.") ; }
else
{
//return false;
}
}
但是你的想法是可以实现的只是不能象你那样实现,我的实现如下:
1.在你的页面中放一hidden用来存放选中的行的第二列和对应文本框的值
2.将页面提交
3.用服务器端程序从提交表单中提取操作数据,并写入培植文件
4.调用pl发送短信
js不可能完成所有事情,但它可以为很多应用做数据的收集工作,以后不要总想着用js去完成什么特殊的操作,他没有那么大本事,你要考虑的是该用那种服务器方法去做这种操作,需要那些数据,js怎样为我收集数据