2013-05-07 29 views
0

我认为这将会非常简单,但我认为从.ajax向查询发布变量时存在一个错误。有没有其他方法可以得到我的结果?如何在.ajax后的查询中插入变量

这里是我的jQuery:

jQuery_1_4_2(document).ready(function() 
{ 
jQuery_1_4_2('.mainfolder').live("click",function() 
{ 
event.preventDefault(); 
var ID = jQuery_1_4_2(this).attr("id"); 
var dataString = 'folder_id='+ ID; 

if(ID=='') 
{ 
alert("Serious Error Occured"); 
} 
else 
{ 
jQuery_1_4_2.ajax({ 
type: "POST", 
url: "display_folder.php", 
data: dataString, 
cache: false, 
success: function(html){ 
jQuery_1_4_2(".right_file").prepend(html); 


} 
}); 
} 


}); 

}); 

这里是我的display_folder.php

<?php 
     $folder_id = $_POST['folder_id']; 
     //echo $folder_id; 
     $qry=mysql_query("SELECT * FROM tbl_folder WHERE folder_id='$folder_id'"); 
     while($row=mysql_fetch_array($qry)) 
      { 
       echo $row['folder_name'] . "<br>"; 
       } 

?> 

任何人能解释为什么不行?我试图echo $ folder_id并且它正在工作,但是当你把它放在查询中时,它不起作用。

注意:这不是一个愚蠢的问题,我忘记了我的连接数据库。谢谢

+2

['MySQL'(http://php.net/manual/en/book.mysql.php)(_mysql _ * _功能)扩展名是[* **弃用***](http://php.net/manual/en/function.mysql-connect.php)。我建议使用['MySQLi'](http://php.net/manual/en/book.mysqli.php)(_mysqli _ * _ functions)或['PDO'](http://php.net/manual改为/en/book.pdo.php)。 – BlitZ 2013-05-07 05:58:54

+0

1.检查来自DBMS的错误消息“mysql_errno()','mysql_error()'。 2.检查你的数据库。 3.检查指定连接的数据库。 – BlitZ 2013-05-07 06:03:15

+0

我想恢复一个旧的网站,将使用ajax,所以如果有任何其他方式不重新编码整个事情可以有人告诉我是什么方式? – 2013-05-07 06:04:09

回答

0

我同意你和我在这里我提供(只是为了干净的显示)相同的一些小格式。

var dataString = 'folder_id=1'; 
     $.ajax({ 
      url: "folder.php", 
      type:'post', 
      async: false, 
      data:dataString, 
      success: function(data){ 
       alert(data); 
      } 
     }); 

和php部分,我得到folder_id正确。

<?php 
    $postid = $_POST['folder_id']; 
//echo $postid; 
$link = mysql_connect("localhost","root",""); 
mysql_select_db("test", $link); 
$query = mysql_query("select * from post where id='$postid'"); 
while($row=mysql_fetch_array($query)) 
{ 
    echo $row['text'] . "<br>"; //a, b etc in each row 
} 
?> 

所以它应该工作。

+0

这是一个'POST'请求,为什么? – BlitZ 2013-05-07 05:59:54

+1

即使使用'$ .ajax'辅助程序将数据放入'data'属性中的'GET'请求就足够了,这将无济于事。 – 2013-05-07 06:04:15

+0

这是工作是的。我使用了相同的代码。我在folder.php中写入“test”,并提示“测试”。这是行得通的。问题是当你在folder.php中测试一个查询时,例如“SELECT * FROM test”。应该有输出,但只显示空白。 – 2013-05-07 06:21:18

0

在PHP代码试试这个

<?php 
    $folder_id = addslashes($_POST['folder_id']); 
    //echo $folder_id; 
    $qry=mysql_query("SELECT * FROM tbl_folder WHERE folder_id='$folder_id'"); 
    while($row=mysql_fetch_array($qry)) 
     { 
      echo $row['folder_name'] . "<br>"; 
      } 

?>