2011-05-05 72 views
1

我在獲取和測試ajax的返回值方面存在問題。我的代碼是 ,並且當alert => Nan時返回。javascript ajax:獲取值

function getValue(table1, table2, id1, id2) 
{ 
alert("table name "+table2+" id: "+id2); 

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) 
{ 
alert("ajax value: "+xmlhttp.responseText - 0); 

var val = xmlhttp.responseText - 0; 

var price = document.getElementById("price"); 
var original= price.value; 
original = original - 0; 
var new_val = original + val; 
price.value = new_val; 

document.getElementById("showprice").innerHTML=xmlhttp.responseText; 
} 
} 

xmlhttp.open("GET","_pages/ajax/advert_temp.php? t1="+table1+"&t2="+table2+"&id1="+id1+"&id2="+id2+"",true); 
xmlhttp.send(); 

}

回答

2

我假設你正在談論此警報。這裏的操作

alert("ajax value: "+xmlhttp.responseText - 0); 

令說

  1. 添加 「AJAX值:」 和xmlhttp.responseText 1
  2. 拿結果,並減去零[又名 「stringNumber」 - 0 =爲NaN]

您需要更改操作的順序,所以它是

alert("ajax value: " + (xmlhttp.responseText - 0)); 

但是,如果它是字符串或數字,則警報確實沒有什麼區別,因爲警報顯示字符串。

您也可以使用parseInt或parseFloat轉換某些人可能想要讀取的數字,而不是-0

+0

我還應該注意,您可能還需要清理'xmlhttp.responseText',以確保它沒有任何額外的空格或在字符串前後返回。這也會搞砸' - 0'。 – epascarello 2011-05-05 11:38:32

+0

你是對的,如果想要數值然後需要在括號中,現在我解決了這個問題,有一些訂單問題。這是現在的工作,再次感謝... – 2011-05-05 11:52:33

+0

@ime - 現在將其轉換爲jQuery;) – epascarello 2011-05-05 11:54:59