使用jQuery更新数据库的值

时间:2018-01-22 16:53:02

标签: php ajax post sql-update

我有一个数据库表,其中我有两个字段(除了ID):'name'和'value'。 我希望'value'字段始终为'0'或'1'。

现在,我有一个页面,我使用PHP while循环显示此表上的所有名称。我想要的是每次点击一个名字,我都会将该行的'value'字段更改为'0'或'1'。 所以,如果我有一行名称为'John Doe'且值为'0',当我点击它时,我会将值更改为'1'。我想用Ajax做这个,所以页面不会重新加载,但我真的很喜欢这个。

到目前为止:

的index.php

function update()
{
 var value = document.getElementById('val').innerHTML;
 var id = document.getElementById('userid').innerHTML;
 if(value == 1)
 {
  $.ajax({
  type: 'post',
  url: 'loaddata.php',
  data: {
   iduser:id,
   new_value: 0
  }
  });
 }

 else if (value == 0)
 {
    $.ajax({
  type: 'post',
  url: 'loaddata.php',
  data: {
    iduser:id,
   new_val: 1
  }
  });
 }
}

<?php 
                    while($dados= $dado->fetch(PDO::FETCH_ASSOC)){
                        $userid = $dados['userid'];
                        $name = $dados['name'];
                        $val = $dados['value'];
                ?>



  <button onclick="update()">
<div class="linha-convidado">
<span><?php echo $name ?></span>
<span id="val"><?php echo $val ?></span>
<span id="userid"><?php echo $userid ?></span>
</div>
</button>

<?php } ?>

loaddata.php

<?php

if( isset( $_POST['entrada'] ) )
{

$id = $_POST['iduser'];
$newval = $_POST['new_value'];

$host = 'localhost';
$user = 'root';
$pass = ' ';
$db = 'convidados';

$con = mysqli_connect($host, $user, $pass, $db);


$updatedata = "UPDATE convidados set value = '$newval' WHERE userid = $id";

$query = mysqli_query($con, $updatedata);

}
?>

我知道我错过了一些东西(或者很多东西),但我真的不知道。你能救我一下吗?

1 个答案:

答案 0 :(得分:1)

您需要在JSPHP两者中将名称统一为

只需删除if... else像这样使用

$.ajax({
  type: 'post',
  url: 'loaddata.php',
  data: {
   iduser:id,
   new_value: value ? 0 : 1
  }
  });

此外,您必须从ajax

发送entrada的值

检查以下条件

 if( isset( $_POST['entrada'] ) )