如何显示两组输入值的总和 - ajax

时间:2012-06-30 09:24:33

标签: html ajax input sum

我想总结一下group name ='s'和group name ='v'的值 单击单选按钮时,它们会调用功能块(str,str2)

问题是,似乎ajax的执行一下子就出现了。当第二组被激活时,不能获得第一组的值,反之亦然

这些是输入

    <input type='radio' id='1' name='s' onclick='pieces(this.value);'  value='6'>6
    <input type='radio' id='2' name='s' onclick='pieces(this.value);'  value='12'>12
    <input type='radio' id='3' name='s' onclick='pieces(this.value);'  value='24'>24


    <input type='radio' id='11' name='v' onclick='pieces(this.value);'  value='50'>Yes
    <input type='radio' id='12' name='v' onclick='pieces(this.value);'  value='0'>No


    <div id='txtHint'>Sum will display here</div>

这是我的剧本

    $(document).ready(function(){

                    $('#btn').click(function(){
                        var str1=$('input:radio[name=s]').val();
                        var str2=$('input:radio[name=v]').val();
                        pieces(str1,str2);
                    });
                    });

                function pieces(str1, str2)

                {                   
                    if (window.XMLHttpRequest)

                      {// code for IE7+, Firefox, Chrome, Opera, Safari
                      xmlhttp=new XMLHttpRequest();
                      }

                    else
                      {// code for IE6, IE5
                      xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
                      }

                    xmlhttp.onreadystatechange=function()
                      {
                      if (xmlhttp.readyState==4 && xmlhttp.status==200)
                        {               document.getElementById(txtHint).innerHTML=xmlhttp.responseText;
                        }

                      }


                    xmlhttp.open('GET','url.php?var1='+str1+'&var2='+str2,true);

                    xmlhttp.send();

                }

以下是ajax代码的链接页面

    <?php

    $s = $_GET['s'];
    $v = $_GET['v'];

    if($s == 6 && $v == 50)
        echo"value";

    else if($s == 6 && $v == 0)
        echo"value";

    else if($s == 12 $v == 50)
        echo"value";

    else if($s == 12 $v == 0)
        echo"value";


    else if($s == 24 $v == 50)
            echo"value";

    else if($s == 24 $v == 50)
            echo"value";

    ?>  

请帮忙。新手在这里

2 个答案:

答案 0 :(得分:1)

一些观察结果:

  • onclick元素的input中,您使用一个参数调用pieces,而函数需要并使用两个参数(strstr2) :它需要在ajax调用中调用正确的URL。因此,最好立即执行以下操作,而不是立即调用pieces:通过查看组str中当前选定的选项,创建一个收集str2s值的函数和小组v。然后,您可以使用这两个值调用pieces
  • 你检查过你的ajax电话是否正确?请求是否实际到达服务器?现在通常依赖JavaScript库来执行ajax调用,但如果你的ajax代码是正确的并且可以在多个浏览器中运行那么那也没关系。
  • 最后,您将从ajax调用返回响应,但它从未在JavaScript代码中使用过。您需要阅读ajax响应并将值放在网页的某个位置(也使用JavaScript)。

答案 1 :(得分:0)

最后我得到了自己问题的答案。我会在这里发布,以便有人提出同样的问题。

    <html>
    <head>
    <script LANGUAGE="JavaScript">

    function calc()
    {

      if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
      else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }


      if (document.form.value1[0].checked)
        s = 6;

      else if (document.form.value1[1].checked)
        s = 12;

      else if (document.form.value1[2].checked)
        s = 24;

      if (document.form.value2[0].checked)
        v = 5;

      else  if (document.form.value2[1].checked)
        v = 0;

      document.getElementById("resp").innerHTML="Calculating...";
      queryPath = "CalcServ.php?value1="+s+"&value2="+v;

      xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {

          document.getElementById("resp").innerHTML=xmlhttp.responseText;

        }
      }

      xmlhttp.open("GET",queryPath);
      xmlhttp.send();


    }
    </script>
    </head>
    <body>
        <div width="320">
          <center>
            <form name="form">
            <font size="4"><strong>PHP/AJAX Calculator</strong></font><br/><br/>
               <input  onclick='calc(this.value);' id="6" type="radio" name="value1" value="6">6<br/>
               <input  onclick='calc(this.value);' id="12" type="radio" name="value1" value="12">12<br/>
               <input  onclick='calc(this.value);' id="24" type="radio" name="value1" value="24">24<br/>

               <br/>
                 <input  onclick='calc(this.value);' id="y" type="radio" name="value2" value="yes">yes<br/>
                 <input  onclick='calc(this.value);' id="n" type="radio" name="value2" value="no">no<br/>
             </form>

        <strong><font size="4" color="blue"><span id="resp"></span></font></strong>
        </center>
        </div>
          </body>

    </html>

这是要调用的页面

    <?php

    if ($_REQUEST["value1"] == "6" && $_REQUEST["value2"] == "5")
        $sum = 6 + 5;

    else if ($_REQUEST["value1"] == "6" && $_REQUEST["value2"] == "0")
        $sum = 6;

    else if ($_REQUEST["value1"] == "12" && $_REQUEST["value2"] == "5")
        $sum = 12 + 5;

    else if ($_REQUEST["value1"] == "12" && $_REQUEST["value2"] == "0")
        $sum = 12;

    else if ($_REQUEST["value1"] == "24" && $_REQUEST["value2"] == "5")
        $sum = 24 + 5;

    else if ($_REQUEST["value1"] == "24" && $_REQUEST["value2"] == "0")
        $sum = 24;


    echo $sum;

    ?>