2013-12-09 96 views
0

因此,當用戶訪問我的頁面時,我有一個ajax函數,它可以獲取數據庫中的行數並將其數字化(工作正常)。我也有一個表單,用戶可以提交一個詞。我試圖做的是當用戶向數據庫提交一個單詞時,AJAX將負責提交,然後運行一個函數來獲取數據庫中新的行數。提交AJAX表單,重定向而不是處理頁

此代碼重定向到submit.php頁面,而不是把它處理所有的主要頁面

對AJAX

$(document).ready(function() { 
    display(); 

    $('.add').on('submit', function (e) { 
     e.preventDefault(); 
     $.ajax({ 
      type: 'post', 
     url: 'submit.php', 
     data: $('this').serialize(), 
     success: function() { 
      display(); 
     } 
     }); 
    }); 


}); 

function display() { 
    $(".container").load("ajax.php").hide().delay(500).fadeIn(1500); 
} 

HTML

<div class="container"></div> 
    <form action="submit.php" method="post"> 
     <input type="text" name="word"> 
     <input type="submit" class="add" name="add" value="add"> 
    </form> 

ajax.php

<?php 
     $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect'); 
     $query = "SELECT * FROM test"; 
     $result = mysqli_query($conn, $query) or die ('error could not query'); 

     $num = mysqli_num_rows($result); 

     echo '<h1>'.$num.'</h1>'; 

?> 

Submit.php

<?php 
    if(isset($_POST['add'])) { 
     //Connect 
     $word = $_POST['word']; 

     $conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect'); 
     $query = "INSERT INTO test VALUES(0, '$word')"; 
     mysqli_query($conn, $query) or die('error could not query'); 

    } 
?> 

回答

2

你應該掛鉤submit事件到form,而不是提交button

按鈕沒有提交事件,這就是爲什麼你沒有被吸引。

+0

讓我感動的類=「添加」到形式,把它關閉按鈕,現在犯規重定向到提交頁面,但它不提交給數據庫。我可以告訴ajax正在工作,因爲它調用了display()並淡入數字(但沒有更新?) – user934902

+1

按下F-12,打開調試器中的NETWORK面板,看看你和服務器。你有第二個問題,可能在PHP端。 –

+0

所以我改變了一些PHP,你是正確的有一個錯誤檢查我的一些錯誤...得到它只與一個基本的插入查詢 – user934902

1

$('this').serialize();

應該是:

$(this).serialize();

相關問題