2013-04-04 187 views
0

我想改變:從正規阿賈克斯jQuery的阿賈克斯

function showUser(str) 
{ 
    if (str=="") 
    { 
     document.getElementById("txtHint").innerHTML=""; 
     return; 
    } 
    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","get_content.php?q="+str,true); 
    xmlhttp.send(); 
} 

到jQuery的阿賈克斯。現在,我有以下實現的是:

$('#menurow').change(function() { 
    $.ajax({ 
     type: "GET", 
     url: "get_content.php?q="+str,true, 
     data: $('#txtHint').innerHTML(), 
     success: function(data) { 
      alert('test'); 
     } 
    }) 
}); 

當我出去試試這個代碼,瀏覽器口口聲聲說未捕獲的SyntaxError:意外的標識上的數據:$('#txtHint').innerHTML()。有人知道如何解決這個問題嗎?這是HTML/PHP代碼:

<form> 
<select name="menurow" id="#menurow"> 
<option value ="select">Selecteer een menu</option> 
<?php 
    $sql= mysql_query("SELECT * FROM Menu") or die(mysql_error()); 

    while ($row = mysql_fetch_array($sql)) 
    { 
     ?><option data="menu" value="<?php echo $row['menu_id']; ?>"><?php echo $row['menu_name']; ?></option> 
     <?php 
     $subsql= mysql_query("SELECT * FROM SubMenu INNER JOIN Menu WHERE SubMenu.menu_id = Menu.menu_id AND Menu.Menu_id = ".$row['menu_id']."") or die(mysql_error()); 
     while ($subrow = mysql_fetch_array($subsql)) 
     { 
     ?><option data="submenu" value="<?php echo $subrow['submenu_id']; ?>"><?php echo "--".$subrow['submenu_name']; ?></option> 
     <?php 
     } 
    } 
?> 
</select> 
</form> 
<div id="txtHint"></div> 

在此先感謝

感謝您的幫助球員。現在我有它如下:

$('.menurow').change(function(str) { 
    $.ajax({ 
     type: "GET", 
     url: "get_content.php?q="+str, 
     success: function(data) { 
      $('#txtHint').html(data); 
         tinyMCE.init({ 
      theme : "advanced", 
      mode : "textareas" 
     }); 
     } 
    }) 
}); 

我怎樣才能得到它的形式的數據?我在函數中聲明瞭str。正因爲如此,它顯示出空的領域。我怎樣才能填滿他們的數據?

+0

你有一個語法錯誤在這裏:'url:「get_content.php?q =」+ str,true,'因爲'true',它不是一個有效的對象。 – 2013-04-04 14:52:46

+0

標記是怎樣的? '$('#txtHint')。innerHTML()'包含什麼? – David 2013-04-04 14:53:25

回答

0

的數據需要的對象類型:

data: { hint: $('#txtHint').innerHTML() }

但看到這是不是你的實際意圖,數據屬性是要發送到服務器的數據。它看起來像你想把輸出在#txtHint。 所以,你需要這樣做:

$('#menurow').change(function() { 
    $.ajax({ 
     type: "GET", 
     url: "get_content.php?q="+str, 
     success: function(data) { 
      $('#txtHint').html(data); 
     } 
    }) 
}); 
+0

你仍然有問題的語法錯誤。 'true'會導致語法錯誤。 – 2013-04-04 14:58:31

+0

謝謝。編輯。 – errieman 2013-04-04 14:59:45

+0

它現在工作,謝謝你們! – user2237168 2013-04-04 18:46:28

0

你的數據應與鍵值對的對象爲每個查詢參數:不需要

data: { var1: 'theValue1', var2: 'theValue2' } 
1
url: "get_content.php?q="+str 

,true,部分。

此外,您需要一個變量名稱爲您的數據。順便說一句,你可以通過使用相同的格式將q變量,沒有它附加到URL

您可以使用短版本(它也將使用你的方法工作):

$.get("get_content.php", {q: str, txtHint: $('#txtHint').innerHTML()}, 
    function(data) { 
     alert('test'); 
    } 
);