如何使用jQuery进行动态数据库咨询?

时间:2010-11-26 02:29:42

标签: php jquery mysql ajax

我想让一个mysql请教从ajax向php发送变量。 我认为代码本身解释得更好

<script type="text/javascript" src="jquery.js"></script>
<?php
include "w_config.php"; //only a local php lib, you can ignore
//the function query only returns the query result
print_r(query("select * from artists where artist like '%$_POST[query]%'"));
?>
<script language="javascript" type="text/javascript">
$.ajax({
   type: "POST",
   data: "query=search"
 });
</script>

当我说data: "query=search"我希望将值“search”作为字符串发送到mysql中的$ _POST [query]时参考:select * from artist中的艺术家,如'%$ _ POST [query]%'

例如,

数据:“query = linkin park”;

所以变量$ _POST会得到字符串“linkin park”并更新查询

2 个答案:

答案 0 :(得分:3)

首先,如果您使用的是ajax,则应该有一个单独的php文件,只返回搜索结果。

其次,您需要转义搜索字符串以防止SQL注入(Google会告诉您所有相关信息)。

第三,你需要决定是否要接受像json这样的东西并用jquery解析它并构建html,或者让php返回现成的HTML,这样你就可以将它放在DIV或类似的东西中(在这种情况下,您可能会使用jQuery的load)。

第四,你需要告诉我们你的HTML是什么样的,特别是那个有输入框(搜索词)和某种按钮的部分。

在完成这些第一步后,我们可以讨论代码。

答案 1 :(得分:0)

有几种方法可以做到这一点。一个好的方法是编写将您的请求答案返回XML格式的PHP脚本。

从您的javascript代码调用这些脚本,并根据需要操作您收到的XML数据。

基本上是这样的:

//Your pseudo PHP Script:
// pre conditions on inputs (assertion, secure strings, ...)

// Write the data selected from your database in XML
// For example:
 SELECT name FROM Artist WHERE id_artist = $_GET['id']
// Start your XML output
<Artists>
// For each name write:
  <Artist name="..." />
</Artists>

// post conditions ...

//Your Javascript Code Example:
$.get({
  url: 'script.php?id=' + id,
  success: function(xml) { //manipulate your XML }
});