Tôi đang tìm kiếm một giải pháp đơn giản để gọi hàm PHP chỉ khi nhấp vào thẻ .
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
CẬP NHẬT: mã html và PHP nằm trong cùng một tệp PHP
Tôi đang tìm kiếm một giải pháp đơn giản để gọi hàm PHP chỉ khi nhấp vào thẻ .
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
CẬP NHẬT: mã html và PHP nằm trong cùng một tệp PHP
Trước tiên, hãy hiểu rằng bạn có ba ngôn ngữ làm việc cùng nhau.
PHP: Chỉ được điều hành bởi máy chủ và trả lời các yêu cầu như nhấp vào liên kết (GET) hoặc gửi biểu mẫu (POST).
HTML & JavaScript: Chỉ được chạy trong trình duyệt của ai đó (không bao gồm NodeJS).
Tôi giả sử tập tin của bạn trông giống như:
<html>
<?php
function runMyFunction() {
echo 'I just ran a php function';
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
Hello there!
<a href='index.php?hello=true'>Run PHP Function</a>
</html>
Vì PHP chỉ đáp ứng các yêu cầu (GET, POST, PUT, PATCH và DELETE qua $ _REQUEST), đây là cách bạn phải chạy một hàm PHP mặc dù chúng nằm trong cùng một tệp. Điều này cung cấp cho bạn một mức độ bảo mật, "Tôi có nên chạy tập lệnh này cho người dùng này hay không?".
Nếu bạn không muốn làm mới trang, bạn có thể yêu cầu PHP mà không cần làm mới thông qua phương thức có tên là JavaScript không đồng bộ và XML (AJAX).
Đó là một cái gì đó bạn có thể tìm kiếm trên YouTube mặc dù. Chỉ cần tìm kiếm "jquery ajax"
Tôi giới thiệu Laravel cho bất kỳ ai mới bắt đầu ngay: http://laravel.com/
Trong javascript, tạo một hàm ajax,
function myAjax() {
$.ajax({
type: "POST",
url: 'your_url/ajax.php',
data:{action:'call_this'},
success:function(html) {
alert(html);
}
});
}
Sau đó gọi từ html,
<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
Và trong ajax.php của bạn,
if($_POST['action'] == 'call_this') {
// call removeday() here
}
Bạn sẽ phải làm điều này thông qua AJAX . Tôi rất khuyến khích bạn sử dụng jQuery để giúp bạn dễ dàng hơn ....
$("#idOfElement").on('click', function(){
$.ajax({
url: 'pathToPhpFile.php',
dataType: 'json',
success: function(data){
//data returned from php
}
});
)};
Nó có thể được thực hiện và với php khá đơn giản nếu đây là nút của bạn
<input type="submit" name="submit>
và đây là mã php của bạn
if(isset($_POST["submit"])) { php code here }
mã được gọi khi gửi get được đăng, xảy ra khi nhấp vào nút.
Hãy thử làm một cái gì đó như thế này:
<!--Include jQuery-->
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doSomething() {
$.get("somepage.php");
return false;
}
</script>
<a href="#" onclick="doSomething();">Click Me!</a>
Đây là cách dễ nhất có thể. Nếu hình thức được đăng qua bài viết, làm chức năng php. Lưu ý rằng nếu bạn muốn thực hiện chức năng không đồng bộ (không cần tải lại trang), thì bạn sẽ cần AJAX.
<form method="post">
<button name="test">test</button>
</form>
<?php
if(isset($_POST['test'])){
//do php stuff
}
?>
Hãy thử nó sẽ hoạt động tốt.
<script>
function echoHello(){
alert("<?PHP hello(); ?>");
}
</script>
<?PHP
FUNCTION hello(){
echo "Call php function on onclick event.";
}
?>
<button onclick="echoHello()">Say Hello</button>