2016-05-06 93 views
-1

所以...我一直在嘗試使用JQuery發佈請求在我的數據庫中插入數據2天,並且無法使其工作,噸有爲什麼...我敢打賭,有人已經面臨這個問題太什麼想法,所以我在這裏尋找此人:)

這裏的問題:

到HTML文件,使用jQuery的部分(它是在一個click事件):

var eventData; 

eventData = { 
    title: title, 
    start: start, 
    end: end 
}; 

$.post("add.php", eventData); 

的add.php文件:

$con = mysqli_connect("localhost", "root", "", "jqcalendar"); 

$title = $_POST['title']; 
$start = $_POST['start']; 
$end = $_POST['end']; 

mysqli_query($con, "INSERT INTO jqcalendar(title,start,end) VALUES({$title},{$start},{$end})"); 

mysqli_close($con); 

不能使這個東西的工作,已經嘗試了回聲,但它似乎PHP文件甚至沒有執行$ .post命令...如果有人可以幫助我真的很感激它...

編輯: 標題,開始和結束是先前用「」!

我使用控制檯檢查,並在同一行中得到這個錯誤的 $。員額:

$ @ .fullCalendar.select的index.html:35

+3

字符串需要在查詢中引用,也可以考慮使用參數化查詢,以避免像這樣的錯誤和sql注入以及什麼不。 – Musa

+0

檢查您的瀏覽器的控制檯。您可能有錯誤或正在使用錯誤的路徑來添加'add.php'。檢查AJAX POST請求的* Network *控制檯並檢查請求和響應數據。最後,使用[prepared statement](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)將值插入到數據庫中,而不會引入SQL注入漏洞。 – Phil

+1

您的數據庫中是否有稱爲'jqcalendar'的表,名爲'jqcalendar'?如果不是,我猜這些需求中有一個需要改變。 – kunruh

回答

0

你必須使用報價當你在javascript對象中指定值(而不是數字)時。

eventData = { 
    title: "title", 
    start: "start", 
    end: "end" 
}; 

提示

此外,您還可以查看是否通過檢查元素有一個與你的JavaScript部分錯誤。右鍵單擊並單擊檢查/檢查元素。然後去控制檯。如果執行javascript部分後出現任何錯誤,您將看到錯誤。

還在調試JavaScript的一部分時,你可以使用console.log()看到此塊

eventData = { 
    title: title, 
    start: start, 
    end: end 
}; 

你從哪裏得到的標題,開始和結束值的變量

+0

但這些是以前定義在點擊時刻的其他變量,我會嘗試控制檯 –

0

我能問你的價值觀?

如果你沒有從某處或標題得到這個值,開始和結束不是定義,你必須用這樣的引號來改進代碼。

eventData = { 
    title: "title", 
    start: "start", 
    end: "end" 
}; 

如果你想發送字符串,你必須使用引號!

0

找出來了,問題在變量「開始」和「結束」之內,它們是合成日期類型ISO8601,接收到的數據插入到數據庫時會引起什麼麻煩......謝謝大家的時間,但現在的問題是將此日期對象轉換爲自定義字符串...