使用ajax通过文本链接在同一页面上返回php代码

时间:2012-08-02 10:23:17

标签: php ajax jquery

单击时,链接应运行PHP代码,该代码从同一页面上的数据库中提取信息。

我使用AJAX,一个表单和一个按钮实现了这个目的,但我真的希望使用链接代替按钮。

我设法让链接正常工作,但PHP脚本创建的数据库中的表只会在刷新浏览器时闪烁一秒。

如何停止刷新以显示表格?

我将非常感谢任何帮助。

我的代码是:

    <script language="javascript" type="text/javascript">

    function myFunction(){
    var ajaxRequest;  

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser has Failed");
            return false;
        }
    }
}

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('ajaxDiv1');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}

    document.proffForm.submit();
ajaxRequest.open("GET", "proff/all_proff.php");
ajaxRequest.send(null); 


    }

    </script>

    <form name='proffForm' >
    <a href="#" onclick='myFunction()' >List All Professions</a>
    </form>

    <div id='ajaxDiv1'></div></p>

PHP

     <?php 
     include '../dbc.php';



     $allprof1 = mysql_query("SELECT *  
                    FROM users 
                    ORDER BY profession" );

    $qry_result = mysql_query($allprof1) or die(mysql_error());
    ?>
    <?php     
    $display_string = "<table border='1' cellpadding='5' width='100%'               bordercolor='000099'border='solid'>";
    $display_string .= "<tr align='left' bgcolor='009966'>";
    $display_string .= "<th><span class='titlehdr3'>Profession</span></th>";
    $display_string .= "<th><span class='titlehdr3'>Business Name</span></th>";
   $display_string .= "<th><span class='titlehdr3'>Profile</span></th>";
   $display_string .= "</tr>";


   while($row = mysql_fetch_array($qry_result)){
$display_string .= "<tr>";
$display_string .= "<td><span class='tabs'>$row[profession]</span></td>";
$display_string .= "<td><span class='tabs'>$row[full_name]</span></td>";
$display_string .= "<td><span class='tabs'>$row[url]</span></td>";
$display_string .= "</tr>";

   }

   $display_string .= "</table>";
   echo $display_string;

   ?> 

1 个答案:

答案 0 :(得分:0)

我可以看到,您已在表单上添加了提交功能。在ajax请求中,我们不需要任何提交操作,因此请删除行

document.proffForm.submit();

来自您的代码。它会完美地运作。