php
  • ajax
  • 2011-08-20 239 views 0 likes 
    0

    我哪裏出錯了?它應該更新mysql(insertsuscribe函數)並更改錨標記中的圖像。這是我第一次做AJAX,我做錯了什麼?Ajax無法正常工作?

    PHP

    $id= $row['id']; 
    echo "<div class='suscribe'><a id='s$id' href='javascript:suscribe($id);'><img src='/suscribe.jpg' alt='suscribe' /></a></div>"; 
    

    AJAX

    function suscribe(number) 
    { 
    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("s"+number).innerHTML="<img src='/unsuscribe.jpg' alt='unsuscribe' />"; 
        } 
        } 
    xmlhttp.open("GET","suscribe.php?id="+number,true); 
    xmlhttp.send(); 
    } 
    

    suscribe.php

    <?php session_start(); 
    include "database.php"; 
    
    $id = $_GET['id']; 
    
    $database = new Database(); 
    $database->opendb(); 
    $database->insertsuscribe($id); 
    $database->closedb(); 
    
    ?> 
    
    +0

    jQuery會讓你的生活變得更輕鬆。我並不是說你不能自己做AJAX,但jQuery只是讓它更容易。 – Blake

    +0

    謝謝,我仍然喜歡AJAX的解決方案,以瞭解我出錯的地方。 – user892134

    +0

    @ user892134:另外,它是'subscribe'而不是'suscribe'和'unsuscribe'。 –

    回答

    0

    想必HMTL是有效的。如果html無效,Ajax會有問題。另外,如果你使用的是Firefox,你有沒有考慮使用插件,如https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/。這將幫助您確定問題是否與數據未發送,接收或頁面未更新有關。

    +0

    螢火蟲是更好的... –

    +0

    好吧我安裝了螢火蟲,但沒有錯誤,當我點擊?什麼都沒發生?大聲笑..兩件事情應該發生。錨標籤中的圖像應該被更改並且數據庫應該被更新。 – user892134

    相關問題