2015-04-23 2 views
0

Прямо сейчас я пытаюсь получить дату локального хоста. Но запрос ajax не работает успешно. Как мне это сделать?Как получить дату SERVER с помощью вызова Ajax?

Html-код: Он имеет код ajax в теге скрипта.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<title>Untitled Document</title> 
 
<script language=”javascript” type=”text/javascript”> 
 

 
function ajaxFunction() 
 
{ 
 
var xh; 
 
try 
 
    { 
 
    // Firefox, Opera 8.0+, Safari 
 
    xh=new XMLHttpRequest(); 
 
    } 
 
catch (e) 
 
    { 
 
    alert("Your browser does not support AJAX!"); 
 
    } 
 

 
\t \t xh.onreadystatechange=stateChanged; 
 

 
\t \t xh.open("GET","19_time.php",true); 
 
\t \t xh.send(null); 
 
\t \t tt=timer_function(); 
 
    
 
    
 
} 
 

 
function stateChanged() 
 
    { 
 
\t \t \t if(xh.readyState==4) 
 
\t \t \t \t document.getElementById("time").innerHTML=xh.responseText; 
 
} 
 

 
function timer_function(){ 
 
\t \t var mytime= setInterval(AjaxFunction,1000); 
 
} 
 

 
window.addEventListener('load',AjaxFunction,false); 
 
</script> 
 
</head> 
 

 
<body> 
 
<html> 
 
<body> 
 

 
\t <div id="time" style="height:10%; width:30%; margin:4%; margin-top:10%; border:5px solid #804; font-size:26px; " ></div> 
 
</body> 
 
</html>

Php код: Для того, чтобы подключиться к серверу и отправить результат

<?Php 
 
///////// Database Details , add here //// 
 
//$dbhost_name = "localhost"; 
 
//$username = "root";     // Login user id 
 
//$password = "";     // Login password 
 
/////////// End of Database Details ////// 
 

 

 
\t //$con=mysql_connect($dbhost_name,$username,$password) or die("Couldn't connect: ".mysql_error()); 
 
\t //mysql_select_db($database,$con) or die("Error selecting database: ".mysql_error()); 
 

 
//////// Do not Edit below ///////// 
 

 
\t \t $con = mysql_connect('localhost', 'root', ''); 
 
\t \t 
 
\t \t $msg=""; 
 
\t \t $msg .=$con->date('Y-m-d H:i:s'); 
 
\t \t echo $msg; 
 
\t \t 
 
\t 
 

 

 
?>

+0

Какая ошибка вы получаете? –

+0

Для начала на странице HTML есть много ошибок. Хотя 'javascript' является вообще либеральным языком, он все еще чувствителен к регистру. Вы использовали 'ajaxFunction' в определении функции и' AjaxFunction' везде. –

+0

Подтвердите свой html-разметку, используя [онлайн-валидатор W3C] (http://validator.w3.org/check), прежде чем приступать к поиску ошибок. –

ответ

0

Дата() не является функцией в mysql_connect, так что $ жулик -> date() ничего не сделает. date() - это php-функция.

Если вы пытаетесь получить время сервера MySQL:

$con = mysql_connect('localhost', 'root', ''); 
$qry = "SELECT NOW()"; 
$sql_time = $con->mysql_query($qry); 
echo json_encode($sql_time); 

Else, если вы просто хотите время PHP сервера (должно быть системное время) просто этот код:

echo json_encode(date('Y-m-d H:i:s')); 

При отправке данных ответа с php обратно клиенту после вызова ajax убедитесь, что вы json_encode ответ.

+0

Я сделал эхо, используя json_encode ... но на стороне клиента у меня есть document.getElementById («время»). InnerHTML = xh.responseText; i.e responseText принимает ответ. Как получить ответ с помощью json_encode –

+0

Вы ничего не измените, чтобы получить ответ. Когда вы отсылаете json-кодированный ответ обратно в javascript на клиенте, ответ кодируется внутри объекта json, который затем может читать javascript. Поскольку вы отправляете строку Json обратно, вам может понадобиться «document.getElementById (« время »). InnerHTML = JSON.parse (xh.responseText)». Это отобразит возвращаемую строку без кавычек вокруг нее. –

0

Во-первых, попробуйте использовать JQuery, чтобы упростить JavaScript и убедиться, что он будет работать на большинстве браузеров:

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> 
<script language=”javascript” type=”text/javascript”> 
$(document).ready(function() { 
    $.ajax({ 
    url: "19_time.php", 
    cache: false // Ensure each request will hit the server 
    }) 
    .done(function(serverDate) { 
    $("#time").html(serverDate); // Update the HTML with the server response 
    }); 
}); 
</script> 

Тогда, если вы хотите только дату сервера, вам не нужно обращаться к базе данных:

<?php 
    echo date('Y-m-d H:i:s') 
?> 
Смежные вопросы