首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript onchange()

JavaScript onchange()
EN

Stack Overflow用户
提问于 2012-04-13 20:16:08
回答 2查看 1.3K关注 0票数 0

我是JS和编程的新手。

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

我在这里包含了代码..

这是来自一个更新页面,我正在使用它来更新这个数据...

提前感谢..

代码语言:javascript
复制
//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>  

这是表单域:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 20:26:52

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2012-12-19 08:30:22

我推荐这篇来自Mozilla的关于using files in Web applications的文章。

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

代码语言:javascript
复制
// 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上读到的任何东西都会很谨慎。他们的信息更倾向于搜索引擎优化,而不是准确性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10140642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档