在post到php/mysql中使用变量作为值
我使用php从mysql服务器随机获得一行。然后,我会显示一些信息,并希望让用户对该行给出反馈。但是,我似乎无法将ID正确地传输到update.php。(服务器上没有更新)。有人能指出我的错误吗 Mysql php获取(丑陋的)随机行:在post到php/mysql中使用变量作为值,php,jquery,mysql,json,variables,Php,Jquery,Mysql,Json,Variables,我使用php从mysql服务器随机获得一行。然后,我会显示一些信息,并希望让用户对该行给出反馈。但是,我似乎无法将ID正确地传输到update.php。(服务器上没有更新)。有人能指出我的错误吗 Mysql php获取(丑陋的)随机行: $con = mysql_connect($host,$user,$pass); $dbs = mysql_select_db($databaseName, $con); mysql_query("SET CHARACTER SET utf8"); mysql_
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");
$result = mysql_query("SELECT id, username, message, ttime, field1, field2 FROM field WHERE done = 0 ORDER BY RAND() LIMIT 1");
$array = mysql_fetch_row($result);
echo json_encode($array);
然后index.php:
<div id="output">
<div id="username">content</div>
<script id="source" language="javascript" type="text/javascript">
$(function ()
{ $.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(data)
{
var id = data[0];
var vname = data[1];
var message = data[2];
var timestamp = data[3];
$('#output').html(timestamp +message );
$('#username').html( vname );
}
});
});
</script>
<script>
$(document).jkey('a',function() {
$.post("update.php", { id: "id"} )
});
</script>
内容
$(函数()
{$.ajax({
url:'api.php',
数据:“,
数据类型:“json”,
成功:功能(数据)
{
变量id=数据[0];
var vname=数据[1];
var消息=数据[2];
var时间戳=数据[3];
$('#output').html(时间戳+消息);
$('#username').html(vname);
}
});
});
$(document).jkey('a',function(){
$.post(“update.php”,{id:id})
});
然后在update.php中:
<?php require_once('Connections/connection.php'); ?>
<?php
$id = $_POST['id'];
$sql = "UPDATE field SET field1 = field1 +1 WHERE id = '$id'";
$result = mysql_query($sql);
?>
正在将字符串id
作为id发送到服务器。例如,您需要将其替换为保存用户所选行的id号的实际变量
$.post("update.php", { id: rowIDNum} )
如果您提供了有关用户如何选择行的一些信息,我可以提供有关如何确定要放入rowIDNum中的值的更多详细信息。将全局\u id
放入脚本
标记中,然后:
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(data)
{
var id = data[0];
_id = id;
//...
及
$(document).jkey('a',function(){
$.post(“update.php”,{“id”:{u id})//是什么导致了$id上的var_转储?我建议您稍微清理一下代码,您将所有内容混合在一个块中,这会使阅读和理解变得非常困难。如果您想获得帮助,至少发布更多代码并将php与javascript分开(哦,完成那个ajax调用,缺少括号和所有这些点并不能帮助我们确定这是您的语法错误还是您决定只粘贴一小部分)您已经有了一个很好的SQL注入漏洞。如果有人开着一辆卡车通过它并停满了您的服务器,那就太遗憾了。他指的是$id=$\u POST['id'];您应该保护自己不受mysql注入的影响,对于初学者来说,请查看mysql_real_escape_string函数并阅读相关内容。我强烈建议您使用它。@user977101:
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(data)
{
var id = data[0];
_id = id;
//...
<script>
$(document).jkey('a',function() {
$.post("update.php", { "id": _id} ) // <--- Look here
});
</script>