【发布时间】:2016-02-01 09:23:49
【问题描述】:
我编写了下面的代码来将mysql 中的变量设置为 1 或 0。但不知何故,每当我 click 第一个按钮 (1) 时,它总是将分配给第二个按钮的 0 值保存在mysql 表。
<head>
<?php
function update_ziekenwagen($Status) {
$servername = "localhost";
$username = "webapp";
$password = "password";
$dbname = "spoed";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE AlgemeneVars SET value='".$Status."' WHERE id=4";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully:" . $Status;
//echo "UPDATE AlgemeneVars SET value=' " . $Status . " ' WHERE id=4";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();}
?>
</head>
<body>
<input type="button" value="Vertr" id="Vertr" name="Vertr" onclick="document.write('<?php update_ziekenwagen(1); ?>');" />
<input type="button" value="Terug" id="Terug" name="Terug" onclick="document.write('<?php update_ziekenwagen(0); ?>');" />
</body>
【问题讨论】:
-
你是如何解决这个问题的?
-
这不是它的工作原理。您不能直接从 Javascript 调用 php(或任何其他服务器端语言)函数。阅读 AJAX
-
你可以使用jquery、ajax来实现
-
@DigitalDouble 是对的。到底是怎么回事?当您执行代码时,它将使用
1调用update_ziekenwagen()函数,然后使用0,因此您将始终在数据库中看到0值。您无需单击按钮来保存值。试试这个,直接修改你数据库中的值,然后执行代码,不要点击按钮,即使不点击按钮,你也会看到一个0保存在数据库中! -
您的知识非常混乱。 PHP 代码在服务器上运行并生成您想要的任何输出(在本例中为带有内联 JS 的 HTML)。对函数
update_ziekenwagen()的两次调用都发生在生成的内容到达浏览器之前。任何用户交互(点击,例如)都发生在浏览器中,并且不会返回服务器。您可以使用链接、表单或 Ajax 将数据发送回服务器。
标签: javascript php mysql