我想使用javascript打印mysql查询的结果
我正在开发一个房地产网站,在我们数据库中搜索房产的页面中,我在将结果打印到表中之前就做了这项工作,但现在我希望以更具设计性的方式获得结果。我使用此代码生成xml我想使用javascript打印mysql查询的结果,mysql,xml,ajax,Mysql,Xml,Ajax,我正在开发一个房地产网站,在我们数据库中搜索房产的页面中,我在将结果打印到表中之前就做了这项工作,但现在我希望以更具设计性的方式获得结果。我使用此代码生成xml <?php function parseToXML($htmlStr) { $xmlStr=str_replace('<','<',$htmlStr); $xmlStr=str_replace('>','>',$xmlStr); $xmlStr
<?php function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect ('localhost', 'root', '');
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db('realestate', $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$locality = htmlentities($_POST['locality']);
$sellorrent = htmlentities($_POST['sell']);
$price = htmlentities($_POST['price']);
$type = htmlentities($_POST['ptype']);
$query = "SELECT * FROM `property` WHERE locality= '".$locality."' and sellorrent='".$sellorrent."' and type='".$type."' and price<= '".$price."' ";
$result = mysql_query($query, $connection);
$row = mysql_fetch_array($result);
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<properties>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<property ';
echo 'id="' . parseToXML($row['id']) . '" ';
echo 'seller_id="' . parseToXML($row['seller_id']) . '" ';
echo 'bedrooms="' . parseToXML($row['bedrooms']) . '" ';
echo 'year="' . parseToXML($row['year']) . '" ';
echo 'locality="' .parseToXML($row['locality']) . '" ';
echo 'type="' .parseToXML($row['type']) . '" ';
echo 'price="' .parseToXML($row['price']) . '" ';
echo 'sellorrent="' .parseToXML($row['sellorrent']) . '" ';
echo '/>';
}
// End XML file
echo '</properties>';
?>
xml文件工作正常,并从表单页面获取结果
现在我用javascript创建这个页面,以输出xml的结果
<!DOCTYPE html >
<head>
<script type="text/javascript">
function load() {
downloadUrl("searchxml.php", function(data) {
var xml = data.responseXML;
var properties= xml.documentElement.getElementsByTagName("property");
for (var i = 0; i < properties.length; i++) {
var id = properties[i].getAttribute("locality");
var address = properties[i].getAttribute("price");
var bedrooms = properties[i].getAttribute("bedrooms");
var seller_id = properties[i].getAttribute("seller_id");
var property_id = properties[i].getAttribute("id");
var type = properties[i].getAttribute("type");
var year = properties[i].getAttribute("year");
var sell = properties[i].getAttribute("sellorrent");
document.write( type + " for " + sell + " in " + id + "</h3><br>");
}
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
</script>
</head>
<body onload="load()">
</body>
</html>
函数加载(){
下载URL(“searchxml.php”,函数(数据){
var xml=data.responseXML;
var properties=xml.documentElement.getElementsByTagName(“属性”);
对于(var i=0;i”)中为“+sell+”键入“+”;
}
});
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(请求、请求、状态);
}
};
打开('GET',url,true);
请求发送(空);
}
函数doNothing(){}
但是没有什么可以告诉我的要回答你的问题,请阅读。。。 但简短的回答是,它会像
$(document).ready(function() {
$.ajax({
type:'POST',
url:"searchxml.php",
data : {}, //you can add posted data, in an inline Javascript array form
success : function(response) {
var xml = response;
var properties= xml.documentElement.getElementsByTagName("property");
for (var i = 0; i < properties.length; i++) {
var id = properties[i].getAttribute("locality");
var address = properties[i].getAttribute("price");
var bedrooms = properties[i].getAttribute("bedrooms");
var seller_id = properties[i].getAttribute("seller_id");
var property_id = properties[i].getAttribute("id");
var type = properties[i].getAttribute("type");
var year = properties[i].getAttribute("year");
var sell = properties[i].getAttribute("sellorrent");
$('body').append($('<h3/>').text( type + " for " + sell + " in " + id + "<br />"));
}
});
});
$(文档).ready(函数(){
$.ajax({
类型:'POST',
url:“searchxml.php”,
data:{},//您可以以内联Javascript数组形式添加发布的数据
成功:功能(响应){
var-xml=响应;
var properties=xml.documentElement.getElementsByTagName(“属性”);
对于(var i=0;i “)中键入+”表示“+sell+”);
}
});
});
为什么不使用jQuery或Prototype之类的Ajax库来帮助您处理XMLHttpRequest
,以及DOM操作……如何使用它们?请给出示例或说明