我想让一个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”并更新查询
答案 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 }
});