2013-03-18 69 views
1

我有一个Jscript查询。通过计算从其他下拉菜单中下拉更改。 Jscript/Ajax?

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

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

我有一个下拉框(Box1)(从数据库填充) 我有另一个盒子(Box2)的计算插入到我的数据库中的其他用途在hte网站的其他用途。

当有人在点击提交按钮之前更改Box1下拉列表时,我需要Box2更改图形。

我认为,因为我有calcualtion这让我卡住...代码如下...有人可以帮我找出(我想我需要一些形式的脚本来做到这一点)答案。 ..

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_value”从BOX2改变当过“t2_name从BOX1改变。

再一次,了解解决方案的最佳链接。(据悉约现在从我的最后加入问题!!差不多中级用户;-))

回答

0

编辑:

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

<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(非数字)

上包括教程jQuery的Libary: http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

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

+0

谢谢看起来不错,但仍然困惑。已经阅读了W3(但他们没有真正解释Jscript的不同元素只是展示了想法,并且玩弄了你的代码,但似乎仍然没有弄清楚,我猜测你在哪里说“计算你的结果”这意味着使用“var value_select_1 = $('#select_1')。val();”类型scenerio就像我在PHP中使用两个$ VAR一样??我会继续查找和播放以查看是否可以针对此问题学习此新东西,但如果你有任何进一步的帮助,我会感谢你的帮助。:-) – Rocsha 2013-03-18 10:48:43

+0

所以如果我理解正确,你希望用户从第一个'