2017-08-16 26 views
-1

我正在嘗試一些關於Ajax,JQuery和PHP的東西。如何調試我的Ajax/jQuery應用程序?

我的JavaScript代碼(pop.php位於正確的)我的HTML/PHP代碼在同一個頁面

<script type="text/javascript"> 
     $('.nameclick').click(function()) { 
      ev.preventDefault(); 
      $.ajax({ 
       typ: "POST" 
       url: "/pop.php" 
       data: {id=$(this).data("formid")} 
       success: function(result){ 
        alert(result); 
       } else { 
        alert("test"); 
       } 
      }); 
     }); 
    </script> 

部分(此代碼工作正常打印出來我找表):

 <table class="data-table"> 
      <thead> 
       <tr> 
        <th>Servicenummer</th> 
        <th>Kund</th> 
        <th>Uppgift</th> 
        <th>Status</th> 
        <th>Inlämnad</th> 
       </tr> 
      </thead> 
      <tbody> 
      <?php 
      $no  = 1; 
      $total = 0; 
      while ($row = mysqli_fetch_array($query)) 
      { 
       echo '<tr> 
         <td><div id="clickMe">'.$row['service'].'</div></td> 
         <td><a href="#" class="nameclick" data-formid="'.$row['ID'].'">'.$row['name'].'</a></td> 
         <td>'.$row['Drakt1'].'<br>'.$row['Drakt2'].'<br>'.$row['Drakt3'].'<br>'.$row['Drakt4'].'<br>'.$row['Drakt5'].'<br>'.$row['Drakt6'].'<br>'.$row['reg1'].'<br>'.$row['flaska1'].'<br>'.$row['dator1'].'</td> 
         <td>'.$row['Service_Status'].'</td> 
         <td>'.$row['date'].'</td> 
        </tr>'; 
       $no++; 
      }?> 
      </tbody> 
     </table> 

而且我pop.php:

 <?php 
     require 'connection.php'; 
     $conn   = Connect(); 
     $name   = $conn->real_escape_string($_POST['name']); 
     $email   = $conn->real_escape_string($_POST['email']); 
     $telephone  = $conn->real_escape_string($_POST['telephone']); 

     $sql = 'SELECT name, email, telephone FROM Service_Form WHERE id = "10"'; 

     $query = mysqli_query($conn, $sql); 

     if (!$query) { 
      die ('SQL Error: ' . mysqli_error($conn)); 
     } 
     ?> 

      <?php 
       while ($row = mysqli_fetch_array($query)) 
       { 
         echo $row['name']; 
         echo $row['email']; 
         echo $row['telephone']; 
       } 
      ?> 

此刻,當我點擊我的正常的頁面我我的鏈接沒有得到任何東西,根本沒有警報,但我的pop.php正確輸出了值,我希望...我知道我必須改變我的ID =「10」,但我不確定是什麼,可以它是格言?

我在這裏做錯了什麼?

我想要什麼:

  • 數據庫
  • 當我在表中單擊名稱應該顯示一個警告(或類似的東西)與下面的值的表從表中顯示了姓名,電子郵件和電話號碼(它們也存儲在數據庫表格中,但不在網站表格中)。
+3

這'數據:{ID = $(這個).data(「formid」)}'是無效的語法,試試'data:{id:$(this).data(「formid」)}' – Titus

+0

'$('。nameclick')。click(function() ){ ev.preventDefault ();' - 你忘了定義'ev',所以它不會停止鏈接的正常行爲。 '('。'nameclick')。click(function(ev))ev.preventDefault(); '是對的。這不是問題的根源,但值得注意。這可能會導致JS錯誤 - 請在開發人員工具中檢查瀏覽器的控制檯。 – ADyson

+0

也不清楚爲什麼pop.php試圖讀取稱爲名稱,電子郵件,電話的POST值,因爲您的ajax不會將任何這些值傳遞給它。只有ID作爲輸入被傳遞(並且正如上面註釋所說的,它沒有被正確傳遞)。如果您想使用它作爲變量來確定查詢輸出,您應該查找$ _POST [「id」]並將其包括在您的查詢中,而不是「10」。 – ADyson

回答

1

你的Ajax功能有一些錯誤

所以用這個

<script type="text/javascript"> 
    $('.nameclick').click(function(ev) { 
     ev.preventDefault(); 
     var id = $(this).data("formid"); 
     $.ajax({ 
      type: "POST", 
      url: "pop.php", 
      data: { 
        "id":id 
       }, 
      success: function(result){ 
       alert(result); 
      }, 
      error:function (error) { 
       alert(error); 
      } 
     }); 
    }); 
</script> 
+0

'else語句'有語法錯誤。 – JYoThI

+1

'alert(error);'有點沒有意義,因爲'error'是一個相當複雜的jQuery XHR對象,輸出將毫無意義。如果需要,它應該報告一些特定的領域。另外,'ev'在函數的開始處沒有定義。否則,這應該比OP代碼更好。 – ADyson

+0

謝謝@ADyson我完全錯過了ev – Exprator

0

我編輯您的jQuery的一部分,請嘗試

<script type="text/javascript"> 
      $('.nameclick').click(function(ev)) { 
       ev.preventDefault(); 
       $.ajax({ 
        typ: "POST" 
        url: "/pop.php" 
        data: {id:$(this).attr("data-formid")} 
        success: function(result){ 
         if(result){ 
          alert(result); 
         } else { 
         alert("test"); 
         } 
        } 
       }); 
     }); 
    </script> 
+1

'else語句'有語法錯誤。 – JYoThI

+0

排序else語句錯誤 –

+0

'ev'沒有在函數的開始處定義。 – ADyson