我已经在这里做研究了。 很多人说ajax更好。 但我想首先提出一些问题,因为我从不使用ajax。
如果我在windows.confirm using javascipt
上按“是”,我想删除数据库中的某些行。
我的HTML button
<button onclick="deleteFunction()">Del</button>
我的Javascript function
<script type="text/javascript">
function deleteColumn(id)
{
if (confirm("Are you want to delete?") === true) {
// Do delete method in PHP
} else {
// Cancel delete
}
}
</script>
delete
Storage class
方法
class Storage
{
public function delete($condition)
{
// Delete from database with condition
}
}
我必须使用ajax
来致电PHP method
吗?
答案 0 :(得分:1)
明确两个概念,服务器端执行和客户端执行非常重要。
服务器端,与php一样,代码在Web服务器中解释。
客户端,与javascript一样,代码在用户的浏览器中解释。
AJAX非常适合让双方共同努力,并且#34;而不会打扰用户体验。
在这种情况下使用AJAX不是必须的。当您想要在不重新加载所有站点的情况下进行操作时,AJAX非常有用。如果你想做的是,尝试使用一些jQuery函数,如:
$.ajax({
url: "yourPHPfunction.php",
data: {
row: 123
}
}).done(function() {
alert("The row was deleted.")
});
在你的js delete()函数中。
如果您不想使用AJAX,请在您编写删除功能的PHP文件中发出GET或POST请求(通过js)。
如果你看一下jQuery API文档here,那将是件好事。 但在此之前,要了解有关AJAX的背景知识,请阅读that。
答案 1 :(得分:0)
我会用一个简单的短语回答:
观看此视频: How PHP Works
如果没有AJAX,你会明白自己,为什么你的要求是不可能的。
欣赏视频,并见到你:)
我希望这个答案可以帮助你弄清楚为什么你不能做你想做的事情,而不使用AJAX或类似的东西;)
答案 2 :(得分:0)
php代码需要php解释器才能运行。 浏览器找不到php解释器来在javascript中运行你的代码。所以你必须调用一个php服务器来帮助你。它将运行你的代码并返回你的结果。使用ajax是一个更好的主意!
答案 3 :(得分:0)
这应该给你基本的流程:
<!-- the form sample -->
<form method="POST" action="your_php.php" onsubmit="return confirm('Are you want to delete?');">
ID: <input type="text" name="id" /><br/>
<input type="submit" name="submit" />
</form>
在PHP中:
<?php
class Storage
{
public function delete($id)
{
// should be better if this is another class
$connection = new mysqli('localhost', 'your_db_username', 'db_password', 'database_name');
$stmt = $connection->prepare('DELETE FROM `table` WHERE id = ?');
$stmt->bind_param('i', $id);
$stmt->execute();
}
}
if(isset($_POST['submit'])) {
$id = $_POST['id'];
$storage = new Storage();
$storage->delete($id);
}
?>