如何从同一页面上的mysql获取数据,而无需使用php和ajax重新加载

时间:2015-05-18 14:35:21

标签: javascript php jquery mysql ajax

我有这个代码,假设从mysql获取数据,有用户列表,所以如果你点击一个用户,它将显示用户的详细信息,但每当我点击例如用户3或4时,它只获取用户1。我需要帮助 这是

fetch.php

<?php
       $connection = mysql_connect('localhost', 'root', '');
       $db = mysql_select_db('temp', $connection);
       $x = $_POST['id'];
       $safex = mysql_real_escape_string($x);
   $query = mysql_query("select * from class where id=$safex",  $connection);

   $result = "";

      $result .= "<div id='display'>";
      $result .="<table border=\"1\">";
      $result .="<tr><th>Name</th><th>Password(encrypted)</th></tr>";
        while($row = mysql_fetch_assoc($query)){
$result .= "<tr><td> {$row['name']}</td>"."<td> {$row['password']}</td></tr></p>";
}
$result .="</table>";

$result .= "</div>";
echo $result;

?>

,这是

的index.php

    <?php
$connection = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('temp', $connection);
?>
<html>
<head>
<title>Fetch record using jQuery</title>
<style type="text/css">
#display {
margin : 225px;
}
</style>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$('document').ready(function(){

$('a').click(function(){
var temp = $('a').attr('myval');
$.post('fetch.php', {id:temp}, function(data){
$('#display').html(data);
});
});
});
</script>
</head>
<body>
<?php
$query = mysql_query("select * from class order by id desc LIMIT 2", $connection);
echo "<ul>";
while($row = mysql_fetch_assoc($query)){
echo "<li><a href=\"javascript:return(0)\" myval=\"{$row['id']}\"><h3>{$row['name']}</h3></a></li>";

}

echo "</ul>";

?>
<div id="display"></div>
</body>
</html>
<?php
mysql_close($connection);
?>

3 个答案:

答案 0 :(得分:0)

使用mysql_fetch_array()

mysql_fetch_assoc() intesd
while($row = mysql_fetch_array($query)){
$result .= "<tr><td> {$row['name']}</td>"."<td> {$row['password']}</td></tr></p>";
}

答案 1 :(得分:0)

问题不在数据库中。 代码的问题是声明

var temp = $('a').attr('myval');

使用以下代码:

$('a').click(function(this){
    var temp = $(this).attr('myval');
    $.post('fetch.php', {id:temp}, function(data){
         $('#display').html(data);
    });
 });

变量&#39; temp&#39;总是获取锚标记的第一个id。 其余的代码都没问题。

答案 2 :(得分:-1)

感谢'Honza Haering'现在正在使用,问题是我使用了var temp = $('a')。attr('myval')但正确的是这个var temp = $(this).attr('设为myVal')