我试图在点击HTML按钮时调用php函数。我已经做了一些搜索,发现不可能直接这样做,我应该使用ajax。 所以这是我到目前为止的尝试,但是没有工作。这是我的test.php,该功能也在这个页面中。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.NextPage').on('click', function() {
$.ajax({
url: 'test.php',
data: {x: 1},
type: 'POST',
dataType: 'JSON',
success: function(response) {
alert(response);
}
});
});
});
</script>
</head>
<body>
<button type="button" class="NextPage">go to nextpage</button>
<?php
if (isset($_POST['x'])) {
if ($_POST['x'] == 1) {
$data = function1();
echo json_encode($data);
exit;
}
}
function function1() {
return 'Hi user! im function #1';
}
function function2() {
return 'Hi user! im function #2';
}
?>
答案 0 :(得分:2)
从ajax调用中获取x的值。
$ x = $ _POST ['x'];
然后使用它。
修改强>
首先,您必须检查您的变量设置与否的天气。
if(isset($_POST[x]))
{
$x = $_POST['x'];
}
试试这个
答案 1 :(得分:1)
首先,您需要将按钮设置为type="button"
,然后发出AJAX请求,然后代码中缺少的部分是处理请求的后端部分。然后后端响应该呼叫。在那之后,你可以根据你的反应做你喜欢的事。考虑这个例子:
<?php
// this part handles the AJAX request
if(isset($_POST['x'])) {
if($_POST['x'] == 1) {
$data = function1();
// a call has made, then give a response
echo json_encode($data);
exit;
}
}
function function1() {
// do some processing
return 'Hi user! im function #1';
}
function function2() {
return 'Hi user! im function #2';
}
?>
<!-- make its type "button" -->
<button type="button" class="NextPage">go to nextpage</button>
<div id="notification"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.NextPage').click(function(){
$.ajax({
url: 'test.php',
data: {x: 1},
type: 'POST',
dataType: 'JSON',
success: function(response) {
$('#notification').html('Your ajax call has been successful<br/> and this is a notification').css({background: 'yellow'});
}
});
});
});
</script>
答案 2 :(得分:1)
我几乎已经使用了你的代码并让它运行起来。你的PHP就好了,对于你的AJAX调用,它必须有success
或done
才能使返回的数据受益。
参考代码在这里
HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="mobile-web-app-capable" content="yes">
<link rel="shortcut icon" sizes="196x196" href="">
<link rel="stylesheet" type="text/css" href="" />
</head>
<body>
<div id="abc"></div>
<button type="submit" class="NextPage">go to nextpage</button>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
的JavaScript
$(document).ready(function() {
$('.NextPage').click(function() {
$.ajax({
type:'post',
url:'service.php',
data:{x:1}
}).done(function(data) {
$("#abc").text(data);
});
});
});
PHP
<?php
$x = $_POST['x'];
if ($x == 1) {
function1();
}
function function1() {
echo "This is function 1";
}
function function2() {
echo "This is function 2";
}
答案 3 :(得分:-2)
是什么让你觉得直接调用php函数是不可能的。这正是CodeIgniter PHP MVC框架中所做的。您可以直接在CodeIgniter中使用php类中的参数调用php函数,这实际上就是完成的事情。