2012-06-30 19 views
1

我想總結組名='s'和組名='v' 當單選按鈕被點擊時,他們調用函數塊( str,str2)如何顯示兩組輸入值的總和 - ajax

問題是,這似乎是一次執行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"; 

    ?> 

請幫忙。新手在這裏

回答

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; 

    ?> 
1

一些觀察:

  • 在你的input元素的onclick,你叫pieces一個參數,而功能期待,並使用兩個參數(strstr2):它需要雙方來調用正確的ajax調用中的URL。因此,最好不要立即致電pieces:通過查看組s和組v中的當前選定選項,創建一個收集strstr2的值的函數。然後您可以用這兩個值調用pieces
  • 您是否檢查過您的ajax調用是否正確?請求是否實際到達服務器?現在很多人依靠JavaScript庫來執行ajax調用,但如果你是ajax代碼是正確的,並且可以在多個瀏覽器中工作,那也沒關係。
  • 最後,您將返回ajax調用的響應,但從未在JavaScript代碼中使用它。您需要閱讀ajax響應並將該值放在網頁的某個位置(也使用JavaScript)。
+0

如果我叫函數s(個),S組 和通話功能V(V)第V 我如何可以調用函數的兩個( s,v) 所以我可以從這兩個函數中獲取值。 對不起,我在這裏的新手:) –

+0

你可以創建一個函數'two(this)'在'onclick'中調用。函數'two'必須從HTML獲取's'和'v'的值並執行ajax調用。然後,您可以將結果顯示在希望顯示的位置。所以這意味着你必須自己獲取/修改HTML值,而不是使用'this.value'。 –