Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jQuery更新数据库上的值_Php_Ajax_Post_Sql Update - Fatal编程技术网

Php 使用jQuery更新数据库上的值

Php 使用jQuery更新数据库上的值,php,ajax,post,sql-update,Php,Ajax,Post,Sql Update,我有一个数据库表,其中有两个字段(除ID外):“name”和“value”。 我希望“value”字段始终为“0”或“1” 现在,我有了一个页面,在这个页面中,我使用一个PHP while循环来显示这个表上的所有名称。我想要的是,每次单击名称时,我都会将该行的“值”字段更改为“0”或“1”。 因此,如果我有一行,其中名称为“John Doe”,值为“0”,当我单击它时,我会将该值更改为“1”。我想用Ajax来实现这一点,这样页面就不会重新加载,但我真的不知道这一点 到目前为止,我所拥有的: in

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

现在,我有了一个页面,在这个页面中,我使用一个PHP while循环来显示这个表上的所有名称。我想要的是,每次单击名称时,我都会将该行的“值”字段更改为“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 } ?>
函数更新()
{
var value=document.getElementById('val').innerHTML;
var id=document.getElementById('userid').innerHTML;
如果(值==1)
{
$.ajax({
键入:“post”,
url:'loaddata.php',
数据:{
iduser:id,
新值:0
}
});
}
else if(值==0)
{
$.ajax({
键入:“post”,
url:'loaddata.php',
数据:{
iduser:id,
新版本:1
}
});
}
}
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);

}
?>

您需要在
JS
PHP
中统一命名

如果。。。否则
像这样使用

$.ajax({
  type: 'post',
  url: 'loaddata.php',
  data: {
   iduser:id,
   new_value: value ? 0 : 1
  }
  });
您还必须从ajax发送
entrada
的值

检查以下条件是否正确

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

在循环中使用相同的值时,您具有非唯一的
id
s。每个
用户
都需要自己的
id
@Sean既然我在使用循环,我该如何解决这个问题?使用类而不是Id?是的,可以使用类,也可以将
$userid
附加到
Id=“userid”
以使它们唯一->
Id=“userid”
@Sean我刚刚这么做了,但实际上它仍然不起作用。OP正在
if
else if
中发送
新值,但它仍然不起作用。关于if条件,这只是我忘记更改的东西,我有这样一个:if(isset($\u POST['new\u value']))