我已经开始从事相当大的项目了。 概念:Some1将数据插入mysql。其他人在屏幕上获取数据(表格) 我有我的代码工作,但我填写PHP中的表,因为我知道它对带宽不好,所以我试图用PHP代码从mysql捕获数据,将其发送到js,然后格式化/填充表(setinterval正在运行)。但是我的表格没有填写,我的想法也没有。 我是js的新手,所以如果你发现任何错误,请告诉我!谢谢!
PHP:
<?php
$rows = array();
$con = mysql_connect("where","who","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname", $con);
$result = mysql_query("SELECT * FROM Brokers");
$rows = array();
while($r = mysql_fetch_assoc($result)){
$rows[] = $r;
}
mysql_close();
print json-encode($rows);
?>
JS:
function fetchData()
{
$.ajax({
url: 'brokers.php',
dataType: 'json',
success: createTable(rows)
})
}
function createTable(rows)
{
var flowTable = '<table id="resultTable">'
for (var i=0; i< rows.length; i++){
flowTable += '<tr class="filterthis height20">',
flowTable += '<td class="companyname width120">',
flowTable += rows[i].company_name + '</td>',
flowTable += '<td class="width180">' ,
flowTable += rows[i].address + '</td>',
flowTable += '<td class="width70">' ,
.........SOME MORE...........
flowTable += '</tr>';
}
flowTable += '</table>';
$("#here").innerHTML = flowTable;
}
function starttimer(){
interval = setInterval("fetchData()",1000);
}
startTimer所();
答案 0 :(得分:1)
json_encode
带有下划线而不是短划线json-encode
。
也可以使用:
interval = setInterval(fetchData, 1000);
而不是:
interval = setInterval("fetchData()",1000);
答案 1 :(得分:0)
一个问题是,您实际上是将“成功”处理程序设置为“未定义”。这是因为你有success: createTable(rows)
实际调用函数并将其返回值(“undefined”)设置为处理程序。
相反,你会想要更像的东西:
success: function(data) {
createTable(data);
}
当然,由于处理程序(我认为)将数据作为第一个参数传递,您可以通过以下方式完成相同的操作:
success: createTable
答案 2 :(得分:0)
我找到了解决方案。
对脚本的更正 JS:
function fetchData(){
$.ajax({
url: 'brokers.php', //where are we sending request
dataType: 'json',
success: createTable //where are we transfering data from php ajax request
})
}
var createTable = function(data){
rows = jQuery.parseJSON(data) //creates object from information sent from php
$.each(rows, function(key,value){ //for each row from php does things You want
$("#Somediv").html = value.owner_name
//and etc.
}
}
brokers.php:
$con = mysql_connect();
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('somedb');
$result = mysql_query("SELECT * FROM sometable WHERE something=66");
while($row= mysql_fetch_assoc($result)){ //for each row which = our $result query
$rows[]=$row;
}
echo json_encode($rows);
mysql_close($con);