我有一個問題,當我使用AJAX從PHP頁面向HTML頁面回覆JavaScript時,它不會運行,但是當我檢查JavaScript的JavaScript元素時,我也會回顯一些文本並顯示文本。php echod JavaScript不會運行?
當我在HTML中手動添加JavaScript時,它完美地工作,並且PHP,HTML和AJAX文件都在同一個目錄中,所以這裏沒有問題。
我有3周的index.html,boo.php和ajax.js
的index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="css/jquery.gritter.css" />
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('jquery', '1.7.1');</script>
<script type="text/javascript" src="js/jquery.gritter.js"></script>
<script src="ajax.js"></script>
</head>
<body>
<script type="text/javascript"><!--
refreshdiv();
// --></script>
<div id="timediv"></div>
</body>
</html>
boo.php
<?php
// Fetch the data
$query = "SELECT * FROM $tablename";
$result = mysql_query($query);
// Return the results, loop through them and echo
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$name = $row['name']; // this equals Admin
if($name == 'Admin') {
echo $name; // this echos Admin and shows on index.html
// the javascript below doesnt
echo "
<script type='text/javascript'>
$(function(){
$(document).ready(function() {
var unique_id = $.gritter.add({
title: 'title text',
text: 'description text',
image: 'icon.jpg',
sticky: true,
time: '',
class_name: 'my-sticky-class'
});
return false;
});
});
</script>
";
}
}
?>
阿賈克斯。 js
// Customise those settings
var seconds = 5;
var divid = "timediv";
var url = "boo.php";
////////////////////////////////
//
// Refreshing the DIV
//
////////////////////////////////
function refreshdiv(){
// The XMLHttpRequest object
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Your browser does not support AJAX.");
return false;
}
}
}
// Timestamp for preventing IE caching the GET request
fetch_unix_timestamp = function()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;
// The code...
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp.responseText;
setTimeout('refreshdiv()',seconds*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}
// Start the refreshing process
var seconds;
window.onload = function startrefresh(){
setTimeout('refreshdiv()',seconds*1000);
}
如果在數據庫中有一個名爲Admin的用戶名,那麼腳本應該每5秒檢查一次,如果存在,則顯示一個gritter通知。
任何想法我可以做什麼?謝謝。
您是從一個AJAX調用呼應了JS ...和JS包裹在一個,但兩個文件準備好的功能。如果DOM完全加載,那麼這兩者都不需要,在AJAX調用完成時,您希望這將是呃... –
爲什麼人們仍然在用jQuery這樣做Ajax?! – Songo
此外,請檢查真正打印的內容(例如,添加輸出緩衝並在發送之前記錄輸出) - 別忘了,php的變量以美元符號開頭,並且回顯包含美元函數的jquery代碼。 。實際產量可能與您所期望的不同。 – poncha