私は、jcontainerのクラスを持つ複数のdivが存在するアプリケーションを作成しているかなり初心者のプログラマーです。各jcontainerには、データベース内のapptidというフィールドに対応するIDが関連付けられています。Jqueryでは、5秒ごとにAJAXリクエストをphpページに送信して、データベース内のcurrentlocationというフィールド( apptidに対応)を取得します。これは、 jcontainerごとに発生します。
これが私のコードです:
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);
?>
問題は、alert(msg)から応答が得られないことです。どうしてこれなの?Chrome Developerを確認しましたが、エラーは発生しませんでした。
最終的な目標は、現在の場所の番号をjquery変数に記録することです。例->var currentLocation = Number
助けてくれてありがとう、そしてあなたが物事を片付けるためにもっと詳細が必要なら、私は喜んで投稿することができます!