HTML — Как вызвать функцию PHP одним нажатием кнопки

Я новичок в PHP и только начал изучать основы этого языка.

Я создал страницу под названием functioncalling.php, которая содержит две кнопки, Submit и Insert. Как новичок в PHP, я хочу проверить, какая функция выполняется при нажатии кнопки. Я хочу, чтобы вывод пришел на той же странице. Поэтому я создал две функции, по одной для каждой кнопки. Исходный код для functioncalling.php выглядит следующим образом:

<html>
<body>
<form action="functioncalling.php">
<input type="text" name="txt" />
<input type="submit" name="insert" value="insert" onclick="insert()" />
<input type="submit" name="select" value="select" onclick="select()" />
</form>
<?php
function select(){
echo "The select function is called.";
}
function insert(){
echo "The insert function is called.";
}
?>

Проблема здесь в том, что я не получаю никакого вывода после нажатия любой из кнопок.

Может кто-нибудь сказать мне, где именно я иду не так? Ответы в ближайшее время будут высоко оценены. Заранее спасибо.

117

Решение

Нажатие кнопки client side тогда как PHP server side, но вы можете достичь этого с помощью ajax

 $('.button').click(function() {

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});

});

В вашем php файле:

<?php
function abc($name){
//your code here
}
?>
48

Другие решения

Да, вам нужен AJAX здесь. Пожалуйста, обратитесь к приведенному ниже коду для более подробной информации.

 

Измените свою разметку, как это

<input type="submit" class="button" name="insert" value="insert" />
<input type="submit" class="button" name="select" value="select" />

 

JQuery: —

$(document).ready(function(){
$('.button').click(function(){
var clickBtnValue = $(this).val();
var ajaxurl = 'ajax.php',
data =  {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
// Response div goes here.
alert("action performed successfully");
});
});

});

В ajax.php

<?php
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'insert':
insert();
break;
case 'select':
select();
break;
}
}

function select() {
echo "The select function is called.";
exit;
}

function insert() {
echo "The insert function is called.";
exit;
}
?>
67

Вы должны заставить кнопку вызывать ту же страницу и в разделе PHP проверить, была ли кнопка нажата:

HTML:

<form action="theSamePage.php" method="post">
<input type="submit" name="someAction" value="GO" />
</form>

PHP:

<?php
if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['someAction']))
{
func();
}
function func()
{
// do stuff
}
?>
25

Вы не можете вызывать функции PHP, такие как нажатие на кнопку из HTML. потому что HTML на стороне клиента, а PHP работает на стороне сервера.

Либо вам нужно использовать Ajax, либо сделать это как в фрагменте кода ниже.

<?php
if($_GET){
if(isset($_GET['insert'])){
insert();
}elseif(isset($_GET['select'])){
select();
}
}

function select()
{
echo "The select function is called.";
}
function insert()
{
echo "The insert function is called.";
}

?>.

Вы должны опубликовать данные своей формы, а затем проверить наличие соответствующей кнопки, на которую нажали.

15

Чтобы показать $ сообщение на вашем входе:

    <?php
if(isset($_POST['insert'])){
$message= "The insert function is called.";
}
if(isset($_POST['select'])){
$message="The select function is called.";
}
?><form  method="post">
<input type="text" name="txt" value="<?php if(isset($message)){ echo $message;}?>" >
<input type="submit" name="insert" value="insert">
<input type="submit" name="select" value="select" >
</form>

Чтобы использовать functioncalling.php в качестве внешнего файла, у вас есть
включить его как-то в ваш HTML-документ

12

Попробуй это:

if($_POST['select'] and $_SERVER['REQUEST_METHOD'] == "POST"){
select();
}
if($_POST['insert'] and $_SERVER['REQUEST_METHOD'] == "POST"){
insert();
}
8

Вы можете написать так в javascript или jquery ajax и вызвать файл

$('#btn').click(function(){

$.ajax({
url:'test.php?call=true',
type:'GET',
success:function(data){
body.append(data);

}
});

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<form  method='get' >

<input type="button" id="btn" value="click">

</form>

<?php
if(isset($_GET['call'])){

function anyfunction(){
echo "added";

// your funtion code

}
}
?>
7

onclick Атрибут в HTML вызывает функции Javascript, а не функции PHP.

3
По вопросам рекламы [email protected]