使用mysql,php和ajax创建表(使用jquery)
对于我的新项目,我想要一种不需要在每个数据库请求上重新加载页面的现代方法。 :)我希望脚本查询数据库并创建一个包含查询信息的表。
我尝试过在互联网上找到的不同脚本。 下面的那个最接近我的需求。
的index.php
Display Page $('#getdata').click(function(){ $.ajax({ url: 'getdata.php', type:'POST', dataType: 'json', success: function(output_string){ $('#result_table').append(output_string); } // End of success function of ajax form }); // End of ajax call });
访问getdata.php
<?php include('conn.inc.php'); //Query of facebook database $facebook = mysql_query('SELECT * FROM users') or die(mysql_error()); //Output results if(!$facebook) { mysql_close(); echo json_encode('There was an error running the query: ' . mysql_error()); } elseif(!mysql_num_rows($facebook)) { mysql_close(); echo json_encode('No results returned'); } else { $output_string = ''; $output_string .= ''; while($row = mysql_fetch_assoc($facebook)) { $output_string .= ''; foreach($row as $value) { $output_string .= '{$value} '; } $output_string .= ' '; } $output_string .= '
'; } mysql_close(); // This echo for jquery echo json_encode($output_string); ?>
但是我只在桌子里面得到了一堆{$ value}。 我试过只有$ value但是得到了一堆零。
我尝试了一个简单的脚本
$query = "SELECT users_name, users_password FROM users WHERE users_name = 'name'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result); echo $row['users_name'];
然后我得到som结果但是使用这个脚本我必须在每次搜索时刷新页面。 为了清楚起见,我希望能够使用mysql数据库中的信息创建一个表,并在重新加载页面时将其显示在屏幕上。
有任何想法吗?
您应该使用$ value而不是{$ value}。 在while循环中不需要另一个foreach循环。
$output_string = ''; $output_string .= ''; while($row = mysql_fetch_assoc($facebook)) { $output_string .= ''; $output_string .= ''.$row['Your table column name here'].' '; $output_string .= ' '; } $output_string .= '
';
代替
$output_string .= '{$value} ';
尝试
$output_string .= "{$value} ";
即用双引号替换单引号。
请参阅此处的文档,其中说:
当用双引号指定字符串时……在其中解析变量。
和
变量…在单引号字符串中出现时不会被展开。
您可以反转逻辑,并在客户端执行,使用自动执行此操作的库,如http://phery-php-ajax.net而不是在服务器端创建表,将其作为JSON发送到浏览器,更快,并建立你的表:
Phery::instance()->set(array( 'load' => function(){ /* rest of mysql code */ $rows = array(); while($row = mysql_fetch_assoc($facebook)) { $rows[] = $row; } return PheryResponse::factory()->json($rows); })->process();
然后在客户端内部$(function(){});
$(function(){ var $result_table = $('#result_table'); $result_table.phery('make', 'load'); $result_table.bind('phery:json', function(e, data){ var $this = $(this); for (var i = 0; i < data.length; i++) { $this.append($(' ', { 'html': '' + data[i].row_name + ' ' })); } }); $result_table.phery('remote'); });