我有一个数据库表,其中我有两个字段(除了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);
}
?>
我知道我错过了一些东西(或者很多东西),但我真的不知道。你能救我一下吗?
答案 0 :(得分:1)
您需要在JS
和PHP
两者中将名称统一为
只需删除if... else
像这样使用
$.ajax({
type: 'post',
url: 'loaddata.php',
data: {
iduser:id,
new_value: value ? 0 : 1
}
});
此外,您必须从ajax
发送entrada
的值
检查以下条件
if( isset( $_POST['entrada'] ) )