0

我是 JS 和编程的新手..

我想学习如何在表单的文本字段中实现 onchange() 并在值发生更改时捕获该表单字段的值,并且我想将该信息存储在一个文本文件中,我可以在 php 中创建该文件。我已经有了可以使用 fopen 并插入值的文本文件。但是如何在将其写入文本文件之前捕获并存储一些临时变量。

我在这里包括代码..

这是来自我用来更新此数据的更新页面...

提前谢谢..

//function for multiple select field 
<script>
function Technology(value,state)
{
   if (value > -1) {
      var input= new Array(value);
      var p;

      var techs = [

         <?php
            $con = mysql_connect("localhost", "root");
            if (!$con)
            {
               die('Could not connect: ' . mysql_error());
            }
            mysql_select_db("root", $con);

            $load = mysql_query("SELECT tech from t_tech");
            while($arr = mysql_fetch_array($load))
            {
               echo "'".$arr[0]."',";
            }
         ?>
      ].sort();
      var ele = document.getElementById("tech");

      if(ele.hasChildNodes())
      {
         var len = ele.childNodes.length;
         while(ele.childNodes.length - value > 1)
         {
            ele.removeChild(ele.lastChild);
         }
      }
      var tech_array = new Array;
      <?php
         for($i = 0;$i<$_POST['tech_num'];$i++)
         {
            $p = $i+1;
            echo "tech_array[$i] = '".$_POST['tech'.$p]."';";
         }
      ?>

      for (var i=len-1;i<value;i++)
      {
         p= i+1;
         input[i] = document.createElement('div');

         if(state ==1 )
         {
            input[i].innerHTML = 'Technology' + p + ':  &nbsp;&nbsp; <input type="text" name="tech' + p + '" id="tech' + p +'" size = 25 value="'+tech_array[i] +'"/>';
         }
         else if (state == 0)
         {
            input[i].innerHTML = 'Technology' + p + ':  &nbsp;&nbsp; <input type="text" value="" name="tech' + p + '" id="tech' + p +'" size = 25/>';
         } 

         document.getElementById("tech").appendChild(input[i]);

         var techId = 'tech' + p;

         AutoComplete_Create(techId,techs);

      }           
}}
</script>  

这是表单域:

<tr> 
   <td><b>
      Field1: <select name="tech_num" id="tech_num" onChange="return Technology(this.value,0)"> 
      <?php 
         for ($i=0;$i<=5;$i++) { 
            if ($i==0) 
               $temp = "<option value=$i> - </option>"; 
            else if($i == $_POST['tech_num']) 
               $temp = "<option value=$i selected='selected'>$i</option>"; 
            else $temp = "<option value=$i>$i</option>"; 
               echo $temp; } 
      ?> 
      </select>
   </td>
</tr> 
</table> 
<div id="tech"> </div> <table>
4

2 回答 2

1

要将值存储在服务器上的文本文件中,您需要从客户端发送数据。您最好的选择可能是在 onChange 函数中添加一个 ajax 调用到一个简单地存储值的特殊 php 页面。

http://www.w3schools.com/jsref/event_onchange.asp

http://www.w3schools.com/ajax/default.asp

于 2012-04-13T12:26:51.933 回答
0

我推荐这篇来自 Mozilla 的关于在 Web 应用程序中使用文件的文章。

他们提供的最简单的示例包括以下片段:

// Dynamically adding a change listener
var inputElement = document.getElementById("inputField");
inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
    var fileList = this.files; /* now you can work with the file list */
}

注意:我会谨慎对待您在 W3Schools 上阅读的任何内容。他们的信息更倾向于搜索引擎优化而不是准确性。

于 2012-12-19T00:30:21.507 回答