目前小弟有一个困扰,我有一个网页,需要将表单中的数据通过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>&nbsp;</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>&nbsp;</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.   

    你的问题比较低级,首先你要知道js是客户锻脚本,它仅可以操作页面对象和cookies,而服务器端文件它怎么可以操作,要那样的话js太危险了,随便什么人写些js就可以操作你的服务器文件.
    但是你的想法是可以实现的只是不能象你那样实现,我的实现如下:
    1.在你的页面中放一hidden用来存放选中的行的第二列和对应文本框的值
    2.将页面提交
    3.用服务器端程序从提交表单中提取操作数据,并写入培植文件
    4.调用pl发送短信
    js不可能完成所有事情,但它可以为很多应用做数据的收集工作,以后不要总想着用js去完成什么特殊的操作,他没有那么大本事,你要考虑的是该用那种服务器方法去做这种操作,需要那些数据,js怎样为我收集数据