1

我想在单击单选按钮时总结 group name='s' 和 group name='v' 的值,它们调用函数 pieces(str, str2)

问题是,这里似乎是一次执行 ajax。激活第 2 组时无法获取第 1 组的值,反之亦然

这些是输入

    <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";

    ?>  

请帮忙。新手在这里

4

2 回答 2

1

一些观察:

  • 在您onclickinput元素中,您pieces使用一个参数调用,而该函数需要并使用两个参数(strstr2):它需要在 ajax 调用中调用正确的 URL。因此,最好执行以下操作而不是立即调用:创建一个函数,通过查看 group和 group中当前选择的选项pieces来收集str和查看值。然后,您可以使用这两个值进行调用。str2svpieces
  • 您是否检查过您的 ajax 调用是否正确?请求是否真正到达服务器?如今,依靠 JavaScript 库来执行 ajax 调用很常见,但如果您的 ajax 代码是正确的并且可以在多个浏览器中工作,那也没关系。
  • 最后,您从 ajax 调用返回响应,但它从未在 JavaScript 代码中使用。您需要阅读 ajax 响应并将值放在网页中的某处(也使用 JavaScript)。
于 2012-06-30T09:40:11.780 回答
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;

    ?>
于 2012-07-04T13:13:23.753 回答