通过计算,下拉菜单改变了其他下拉菜单.Jscript / Ajax


drop down changes from other drop down with calculation. Jscript / Ajax?

我有一个Jscript查询。

我已经做了一些阅读,发现AJAX只是一个可以在Linux上使用php的lflash脚本的端服务器。(如果我解释错了,请纠正我)

我不知道脚本是如何工作的,所以这是新的,我尝试了几个不同的尝试,但没有运气。

我有一个下拉框(Box1)(从数据库填充)我有另一个计算框(Box2)插入到我的数据库中,以供网站其他部分的其他用途。

当有人在点击提交按钮之前更改Box1下拉框时,我需要Box2更改数字。

我想是因为我有计算,这让我卡住了…代码如下…有人能帮我弄清楚(我想我需要某种形式的脚本来做到这一点)的答案…

Box1

<td><p>selection 1</p>
         <select id="t1_type" name="t1_type">
<?php $result = mysql_query("SELECT * FROM `t2` ORDER BY t2_value");
while($valuerow = mysql_fetch_array($result)){
        echo '<option value="'.$valuerow['t2_name'].'">'.$valuerow['t2_name'].'</option>'; } ?>

Box2

    <input name="t1_value" id="t1_value" value="
    <?php 
      $var1 = $row_value['t2_value']; 
      $var2 = $row_dropdown['t1_number']; 
      $total = round ($var2 *  $var1); 
      echo "" . $total . ""; 
    ?>" />

我希望这是你需要的所有代码,(让我知道如果需要更多)

它需要做的是显示新的计算每当有人改变box1选项之前点击提交按钮,所以它提交正确的计算到数据库供将来使用。

我认为当"t2_name"从box1改变时,box2的"t2_value"也需要改变。

又是了解解决方案的最佳链接。(现在从我的上一个问题中了解了join !!几乎是一个中间用户。; -))

Edit:

我看到你的第二个框是一个文本框,我相信,如果这是问题,那么你应该这样做

<select id="t1_type" name="t1_type" onchange="change(this);">
   <?php 
      $result = mysql_query("SELECT * FROM `t2` ORDER BY t2_value");
      while($valuerow = mysql_fetch_array($result))
      {
          echo '<option value="'.$valuerow['t2_name'].'">'.$valuerow['t2_name'].'</option>';
      } 
   ?>
</select> 

这定义了您的<select>框,就像您在问题中所做的那样。将onChange事件添加到第一个<select>中,然后创建一个函数来处理onChange事件。当用户更改<select>元素中的项时,将触发onChange事件。

Javascript:

(将这部分代码置于</head>之上)

<script language="javascript" type="text/javascript">
    function change(element)
    {
     // do here whatever you want
     // you can change the value of the <input> box with :
     // document.getElementById(element.id).value = your_value
     // If you want to see if this part works, then try adding this :
     // alert("It works!");
     // If you want to get the text of the item which has been selected in Box1 use :
     // $("#t1_type option:selected").text();
    }
</script>

注意:因为PHP是服务器端,你不能在没有页面刷新的情况下动态更新你的Box2,然而Javascript是客户端,可以做到这一点。

注意:$("#t1_type option:selected").text();代码要求您在脚本中包含jQuery库。如果要用它进行计算,请确保将该变量转换为float, int或double,否则结果将给出NaN (Not a Number)

包含jQuery库的教程:http://docs.jquery.com/Tutorials: Getting_Started_with_jQuery

如果你是JavaScript新手,你应该尝试一些教程。w3Schools.com上的那些对我帮助很大,但有些人说它们并不总是正确的,但无论如何,阅读一些关于Javascript的东西来实际了解你在做什么,而不是复制代码:)