作者 主題: Ajax 回傳的值被用於另一個JS function  (閱讀 4150 次)

0 會員 與 1 訪客 正在閱讀本文。

sbfl26

  • 可愛的小學生
  • *
  • 文章數: 13
    • 檢視個人資料
Hello

我有2個functions,A 和 B,A function 裡利用 Ajax 傳回一個值,我希望這個值不僅僅只用於A,還可以傳至B 被使用。大致的概念如下方的code。但這個code是不work的 :'( :'( :'(,到底是哪裡出了錯誤?
代碼: [選擇]

<html>
<head>
<title>title</title>

<script language="javascript" type="text/javascript">
function A() {
numb = document.getElementById("num").value;

var xmlhttp;
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 answer()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
var text = xmlhttp.responseText;
document.getElementById("result").innerHTML = text;
    }
  }

xmlhttp.open("GET","userdup.php?q="+numb,false);
xmlhttp.send(null);
return text;


}

function B() {
var x = A();
 
        if(x == "Yes"){
            cv = "Good";
        } else {
             cv = "Bad";
        }

document.getElementById("result2").innerHTML = cv; //利用function A 取得Ajax傳回來的值做其它的運用
}

</script>
</head>

<body>
<p>
  <label for=""></label>
  Enter a number here:
  <input name="num" type="text" id="num" onblur="B()" />
</p>
<p>&nbsp;</p>
<p>reslut: <span id="result" style="color:red;"></span></p>
<p>result2: <span id="result2" style="color:red;"></span></p>
</body>
</html>


userdup.php 的內容如下:
代碼: [選擇]
<?
$val = $_Get['q'];
if($val >= "10"){
   $answer = "Yes";
} else {
   $answer = "No";
}

echo $answer;
?>

非常非常感謝。。。

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
Re: Ajax 回傳的值被用於另一個JS function
« 回覆 #1 於: 2011-07-03 13:21 »
代碼: [選擇]
xmlhttp.onreadystatechange=function answer()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
var text = xmlhttp.responseText;
document.getElementById("result").innerHTML = text;
    }
  }
var text1不要在這裡宣告,把宣告移到這個函數外,A函數內應該就可以。


然後把你原來程式裡面的var text =...改成text =...。

Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

sbfl26

  • 可愛的小學生
  • *
  • 文章數: 13
    • 檢視個人資料
Re: Ajax 回傳的值被用於另一個JS function
« 回覆 #2 於: 2011-07-11 10:56 »
YES.. 非常謝謝~  :)