我正在做一个学校项目,该项目基本上是php中的网站,可以在我的数据库中创建产品。我唯一的问题是找到一种通过“ onclick”按钮执行php函数的方法。注意:对葡萄牙语变量名称感到抱歉(老师的其他要求)有代码:
<?php
function criarProduto($descricao,$preco){
$connection = mysqli_connect("localhost", "root", "", "lojadb","3308");
if(!$connection){
die("ERROR: Could not connect. " . mysqli_connect_error());
echo "<center><h1>Erro na conexão à base de dados</h1><center>";
}
$sql = "INSERT INTO produtos(descricao, preco) VALUES ('" . $descricao . "', " . $preco . ")";
$results = mysqli_query($connection, $sql);
if (mysqli_num_rows($results) > 0) {
$row = mysqli_fetch_array($results);
$produto = new Produto($row);
}
else {
echo "<center><h1>Erro na agregação de dados na base de dados</h1></center>";
}
mysqli_close($connection);
}
//meter a verificação de texto(se tem alguma coisa escrita)
echo "<center><h1>Criar produto</h1></center>";
echo "Descrição: <input type='text' name='descricao'>";
echo "<br>Preço: <input type='text' name='preco'>";
echo "<input type='button' value='Gravar'></input></center>";
?>
JavaScript无法直接运行PHP函数,您可以使用以下两种方法来调用PHP文件或PHP代码段:
[您有两个选择,您可以创建一个调用AJAX请求的onclick函数,该请求将运行一个PHP文件,也可以创建一个表单并完全跳过onclick。这是两个的演示:
AJAX方法:
$("button").click(function(){
$.ajax({url: "myFunction.php", success: function(result){
alert("Success")
}});
});
这里是表单方法:
<?php
if(isset($_POST['submit'])) {
// Do some code here, as the button was clicked
// in this case we will run criarProduto()
criarProduto();
}
?>
<form action="" method="post">
<input type="Submit" name="submit"></input>
</form>
注意,检测是否收到POST请求很重要,因为这是您区分发送的表单和普通用户加载页面的方式。还要注意,action =“”为空白,因为我们要运行它们当前所在的页面,如果要从另一个文件中获取PHP,则应在此处输入url路径。
[如果选择PHP方法,将重新加载页面,如果选择AJAX方法,则将在后台发出请求,并且不会重新加载页面,这两种方法都可以。