如何在javascript中调用php方法?

时间:2014-07-18 02:46:50

标签: javascript php ajax database

我已经在这里做研究了。 很多人说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吗?

4 个答案:

答案 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);
}

?>