我是一個非常新手的程序員,他正在製作一個應用程序,其中有多個div,其類別爲jcontainer。每個j容器具有與其關聯的ID,其與數據庫中的稱爲apptid的字段相對應。在Jquery中,我每5秒發送一次AJAX請求到php頁面,以檢索數據庫中的currentlocation字段(對應於applet),這發生在每個j容器。Ajax和JSON響應問題
這裏是我的代碼:
HTML:
<div class='jcontainer' data-param='jcontainer_IDNUMBER'>
<button class='checkIn' data-param='button_IDNUMBER'>Check In</button>
<form method='post' class='myForm' action=''>
<select name='locationSelect' class='locationSelect' data-param='location_IDNUMBER'>
<option value='1'>Exam Room</option>
<option value='2'>Exam Room 2</option>
<option value='3'>X-Ray Room</option>
<option value='1000'>Check Out</option>
</select>
</form>
<div class='finished' style='color:#ff0000;'>Checked Out</div>
</div>
的jQuery:
<script type="text/javascript">
$(document).ready(function() {
setInterval(function(){
$('.jcontainer').each(function() {
var $e = $(this);
var dataid = $e.data("param").split('_')[1] ;
$.ajax({
url: 'heartbeat.php',
method: 'post',
contentType: "application/json",
dataType: "json",
data: dataid,
success: function(data){
var msg = $.parseJSON(response);
alert(msg);
}
});
});
},5000);
//other code that I didn't post, because it's not really relevant, but can post if needed be
和PHP頁面:
<?php
$hostname = 'localhost';
$username = '******';
$password = '*************';
$apptid = $_POST['dataid'];
$db = new PDO("mysql:host=$hostname;dbname=sv", $username, $password);
$statement = $db->prepare("SELECT currentlocation FROM schedule WHERE apptid = :apptid");
$statement->execute(array(':apptid' => $apptid));
$row = $statement->fetch();
$currentlocation = array('CurrentLocation' => $row['currentlocation']);
echo json_encode($currentlocation);
?>
的問題是我不能讓來自警報(msg)的任何響應。爲什麼是這樣?我檢查了Chrome Developer,並沒有出現錯誤。
最終目標是將當前位置編號記錄在jQuery變量中。前 - >var currentLocation = Number
感謝您的任何和所有幫助,如果您需要更多的細節來澄清事情,我可以愉快地發佈!
彈出警報,但值爲空。有任何想法嗎? – Muhambi
這意味着你將NULL傳遞給了函數 –
如果仍然沒有錯誤沒有使用'$ .parseJSON'作爲你期望的數據,那麼JSON已經由dataType參數指定了,其次要麼使用'alert(data)'或者因爲下面的人建議'console.log(data)'並且看看你得到了什麼。此外,如果您使用Chrome,則可以在「網絡」選項卡下的開發人員界面上查看請求標頭/響應。要彈出此界面,請右鍵單擊頁面並選擇檢查元素,然後在其中包含「網絡」選項卡的所有選項卡。找到heartbeat.php的請求,看看發生了什麼。 –