为什么ajax复制整个页面在php

为什么ajax复制整个页面在php

问题描述:

我连接到mysql数据库,我想用php在用户点击按钮后用php从mysql生成内容表。为什么ajax复制整个页面在php

但是,点击一个按钮后,整个页面的标题,正文等生成div div和php脚本在哪里。该按钮当然也可以在视觉上复制。

<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"> 
    <meta http-equiv="content-language" content="cs"> 
    <meta name="author" content="Marek Ciz, Tomas Veskrna"> 
    <meta name="keywords" content="galerie, iis, iis projekt 2016, informacni system"> 
    <link rel="icon" type="image/png" href="./icons/gallery.png" /> 
    <title>Employee</title> 
    <link rel="stylesheet" type="text/css" href="./mystyle.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 
    $("#expo-but").click(function(){ 

     $.ajax({ 
      url: "./employee.php", 
      type: "post", 
      data: {action: "exposition"}, 
      success: function(result) { 
       $("#table").html(result); 
     }}); 
    }); 
}); 
</script> 

</head> 
    <body> 

    <div class="page"> 
    <div class="menu"> 
    <button id="expo-but">Exposition</button> 
    </div> 
    <div id="table-wrapper"> 
    <div id="table"> 
     <table class="striped"> 
      <thead> 
       <tr class="header"> 
        <td>Id</td> 
        <td>Name</td>      
       </tr> 
      </thead> 
      <tbody>    
       <?php 
        include './db_init.php'; 

        //echo $_SESSION["user"]; 

        if(isset($_POST['action'])){ 
         if($_POST['action'] == "exposition") { 
          $sql = "SELECT id_zamestnance, jmeno FROM Zamestnanec"; 
          $result = mysql_query($sql)or die(mysql_error()); 

          while ($row = mysql_fetch_assoc($result)) { 
           echo "<tr>"; 
           echo "<td>".$row[id_zamestnance]."</td>"; 
           echo "<td>".$row[jmeno]."</td>";                  
          }       
         }       
        } 
       ?> 
      </tbody> 
     </table> 
    </div> 
</div> 
</div> 
</body> 
</html> 
+0

你的'employee.php中的php代码是什么? –

+0

因为你的employ.php文件不存在,你得到一个404响应? – Cyclonecode

+0

这整个页面是employee.php –

更正确的解决方案将是独立htmlphp部分: -

你的HTML应该是这样的: -

<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"> 
    <meta http-equiv="content-language" content="cs"> 
    <meta name="author" content="Marek Ciz, Tomas Veskrna"> 
    <meta name="keywords" content="galerie, iis, iis projekt 2016, informacni system"> 
    <link rel="icon" type="image/png" href="./icons/gallery.png" /> 
    <title>Employee</title> 
    <link rel="stylesheet" type="text/css" href="./mystyle.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 
    $(#expo-but).trigger("click"); // on document ready trigger click itself so that table will load initially 
    $("#expo-but").click(function(){ 

     $.ajax({ 
      url: "./employee.php", 
      type: "post", 
      data: {action: "exposition"}, 
      success: function(result) { 
       $("#table").html(result); 
     }}); 
    }); 
}); 
</script> 

</head> 
    <body> 

    <div class="page"> 
    <div class="menu"> 
    <button id="expo-but">Exposition</button> 
    </div> 
    <div id="table-wrapper"> 
    <div id="table"> 

    </div> 
</div> 
</div> 
</body> 
</html> 

而php(employee.php)会像t他: -

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

    //echo $_SESSION["user"]; 
    $data = ''; 
    if(isset($_POST['action'])){ 
     if($_POST['action'] == "exposition") { 
      $sql = "SELECT id_zamestnance, jmeno FROM Zamestnanec"; 
      $result = mysql_query($sql)or die(mysql_error()); 

      while ($row = mysql_fetch_assoc($result)) { 
       $data .= "<tr>"; 
       $data .="<td>".$row[id_zamestnance]."</td>"; 
       $data .="<td>".$row[jmeno]."</td>";                  
      }       
     }       
    } 


$final_data = '<table class="striped"><thead><tr class="header"><td>Id</td><td>Name</td></tr></thead><tbody>'.$data.'</tbody></table>'; 

echo $final_data; 

?> 

注: -

为什么我说,因为你的PHP页面更正确的,你也有你在你目前的HTML DIV写什么相同的代码,所以没有必要做重复。

只是在文件加载时调用按钮的点击功能,就是这样。

+0

这也是解决方案,非常感谢你。 –

+0

@AzurPazur很乐意帮助你:) :) –

+0

我做了,非常感谢。你是我的救命。 –

切此代码,这个代码添加到页面顶部

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

       //echo $_SESSION["user"]; 

       if(isset($_POST['action'])){ 
        if($_POST['action'] == "exposition") { 
         $sql = "SELECT id_zamestnance, jmeno FROM Zamestnanec"; 
         $result = mysql_query($sql)or die(mysql_error()); 

         while ($row = mysql_fetch_assoc($result)) { 
          echo "<tr>"; 
          echo "<td>".$row[id_zamestnance]."</td>"; 
          echo "<td>".$row[jmeno]."</td>";                  
         }       
        } 
exit();       
       } 
      ?> 
+0

非常感谢,它解决了它!我爱你 –

+0

@AzurPazur很高兴帮助你:) :) –

这是我们大多数人的常见错误,我建议您请求另一个PHP页面,而不是请求相同的页面。

table.php

<table class="striped"> 
     <thead> 
      <tr class="header"> 
       <td>Id</td> 
       <td>Name</td>      
      </tr> 
     </thead> 
     <tbody>    
      <?php 
       include './db_init.php'; 

       //echo $_SESSION["user"]; 

       if(isset($_POST['action'])){ 
        if($_POST['action'] == "exposition") { 
         $sql = "SELECT id_zamestnance, jmeno FROM Zamestnanec"; 
         $result = mysql_query($sql)or die(mysql_error()); 

         while ($row = mysql_fetch_assoc($result)) { 
          echo "<tr>"; 
          echo "<td>".$row[id_zamestnance]."</td>"; 
          echo "<td>".$row[jmeno]."</td>";                  
         }       
        }       
       } 
      ?> 
     </tbody> 
    </table> 

并更改网址在scrtipt

<script> 

$(文件)。就绪(函数(){ $( “#世博会,而是” )。单击(函数(){

$.ajax({ 
     url: "./table.php", 
     type: "post", 
     data: {action: "exposition"}, 
     success: function(result) { 
      $("#table").html(result); 
    }}); 
}); 

});