php
  • ajax
  • 2011-08-20 182 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

    相关问题