在post / php / mysql中使用变量作为值

时间:2011-10-14 17:29:49

标签: php jquery mysql json variables

我使用php从mysql-server获取一个随机行。然后我会显示一些信息,并希望让用户就该特定行提供反馈。但是,我似乎无法正确地将ID传输到update.php。 (服务器上没有更新)。有人能发现我的错误吗?

Mysql-php得到(丑陋的)随机行:

$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>

然后在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);
?>

2 个答案:

答案 0 :(得分:1)

将全局_id放入script标记,然后:

  $.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>

答案 1 :(得分:0)

  $.post("update.php", { id: "id"} )

将字符串id作为id发送到服务器。您需要将实际变量替换为包含用户所选行的ID号的实际变量,例如

  $.post("update.php", { id: rowIDNum} )

如果您提供有关用户如何选择行的一些信息,我可以提供有关如何确定要放入rowIDNum的值的更多详细信息。