我正在尝试从mySql数据库获取jQuery的变量。
这是php代码,getTime.php:
include('connect.php');
$sql = "select * from timer";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
$hours = $row['hours'];
$minutes = $row['minutes'];
//echo $hour.":".$minutes;
}
$timeHour = $_POST['hours'];
echo $timeHours;
这是另一个文件的ajax POST请求:
var timeHour = "";
$.ajax({
type: "POST",
url: "ajax/getTime.php",
data: timeHour
});
$(document).ready(function() {
alert(timeHour);
});
但是alertBox没有显示任何内容。 它应该很容易,但我没有找到它解释它的例子。
更新
谢谢!但现在我有另一个问题 - 我想使用我的变量“timerHours”和“timerMinutes”......
$.ajax({
type: "POST",
url: "getTime.php",
success: function(data){
//alert(data);
timerArr = data.split(":")
timerHours=timerArr[0];
timerMinutes=timerArr[1];
}
});
...但是它给出了'undefined:undefined' - 当我提醒数据时 - 它工作正常。
var today = new Date();
var endTime= new Date(today.getFullYear(), today.getMonth(), today.getDate(), timerHours, timerMinutes , 00);
console.log(timerHours+":"+timerMinutes);//Console: undefined:undefined
var second = (endTime.getMinutes()-today.getMinutes())*60+(endTime.getSeconds()-today.getSeconds());
如果我把它放在doTime函数上并将其打印到html它也能正常工作。
function do_time() {
//console.log(timerHours+":"+timerMinutes);//Console: 21:50
second--;
$("#timer").html("Time left: "+second);//Output: Time left: NaN
$('#setTime').html("Hours: "+timerHours+" Minutes: "+timerMinutes);//Works fine too.
}
答案 0 :(得分:1)
首先,你的getTime.php现在可能没有返回任何内容。尝试直接从浏览器中调用它或检查firebug返回的内容。你的代码看起来几乎是正确的,但是你可能已经不存在了$ _POST ['hours'];您的代码应如下所示:
include('connect.php');
$sql = "SELECT * FROM timer";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
$hours = $row['hours'];
$minutes = $row['minutes'];
}
echo $hours.':'.$minutes;
然后,另一个问题是你似乎没有传递给你的ajax中的数据,并期望它返回一些内容。 AJAX数据是您传递给服务器的数据,发回的数据是您必须使用的数据,请尝试这样做:
$(document).ready(function(){
$.ajax({
type: "POST",
url: "ajax/getTime.php",
function(data){
alert(data);
}
});
});
祝你好运
答案 1 :(得分:1)
假设您正在尝试通过AJAX请求将PHP时间用于POST到您的页面。
include('connect.php');
$sql = "select * from timer";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
$hours = $row['hours'];
$minutes = $row['minutes'];
//echo $hour.":".$minutes;
}
// $timeHour = $_POST['hours']; This isn't needed.
echo $hour.":".$minutes;
并为另一个文件创建了ajax POST请求:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "ajax/getTime.php",
success: function(data){
alert(data);
}
});
});
答案 2 :(得分:1)
像这样设置你的jquery。 datastring变量将像$ _POST变量一样传递。所以如果你需要传递一些东西,请把它放在这里。如果没有,请至少将其设为空字符串。
var dataString = 'hours=' + $("field#id").val();
$.ajax({
type: "POST",
url: "getTime.php",
data: dataString,
success: function(data) {
//create jquery object from the response html
var $response=$(data);
//query the jq object for the values
var hours = $response.filter('div#hours').text();
var minutes = $response.filter('div#minutes').text();
$("label#hours").val(hours);
$("label#minutes").html(minutes);
}
});
当然,这只会返回小时和分钟的第一个结果。如果你需要所有这些,你只需将上面的内容放入一个lool中。 $response.filter('div#hours').each()
或其他。
然后,在getTime.php
:
include('connect.php');
$sql = "select * from timer";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
$hours = "<div id=\"hours\">".$row['hours']."</div>";
$minutes = "<div id=\"minutes\">".$row['minutes']."</div>";
echo $hours;
echo $minutes;
}
如果您有更多问题,请与我们联系。