我的文件名是contacts.php,它有两个提交按钮;我希望如果按下插入按钮,则调用插入函数,如果按下了select,则调用select.i编写了以下代码:
//contacts.php
<?php
if(isset($_REQUEST['select']))
{
select();
}
else
{
insert();
}
?>
<html>
<body>
<form action="contacts.php">
<input type="text" name="txt"/>
<input type="submit" name="insert" value="insert" />
<input type="submit" name="select" value="select"/>
</form>
<?php
function select()
{
//do something
}
function insert()
{
//do something
}
?>
但它不起作用。请帮助
答案 0 :(得分:11)
<?php
if (isset($_REQUEST['insert'])) {
insert();
} elseif (isset($_REQUEST['select'])) {
select();
}
即使没有点击任何按钮,您的代码也会调用insert()
,这会在首次显示该页面时发生。
答案 1 :(得分:1)
如果使用return
内部函数返回结果,则必须使用echo在调用函数时打印结果。
if(isset($_REQUEST['select']))
{
echo select();
}
elseif(isset($_REQUEST['insert']))
{
echo insert();
}
答案 2 :(得分:1)
使用post方法,因为它是安全的
//contacts.php
<?php
if(isset($_POST['select']))
{
select();
}
else
{
insert();
}
?>
<html>
<body>
<form action="contacts.php" method="post">
<input type="text" name="txt"/>
<input type="submit" name="insert" value="insert" />
<input type="submit" name="select" value="select"/>
</form>
<?php
function select()
{
//do something
}
function insert()
{
//do something
}
?>
答案 3 :(得分:1)
正如一些人所描述的(总结以前的评论),您有两种选择。
第一种是通过POST或GET直接将数据发送到服务器,并根据select()和insert()中的内容保留(刷新)页面。
虽然这不是POST v GET讨论的正确位置,但约定是在向服务器发送数据时使用POST。 POST稍微更安全,因为信息不存储在浏览器中。在此处阅读有关这两者的更多信息:http://www.w3schools.com/tags/ref_httpmethods.asp
第二个选项是使用AJAX完成您的任务而不刷新网页。简而言之,AJAX使用您放置在页面上的Javascript方法与服务器进行通信,从而避免服务器上的PHP实际更改页面上的任何内容(这需要刷新)。可以在此处找到AJAX的代码示例:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first
答案 4 :(得分:0)
<?php
$insert = $_POST['insert'];
$select = $_POST['select'];
if ($insert) {
insert();
}
if ($select) {
select();
}
else {
echo 'press any button...';
}
?>
<html>
<body>
<form action="contacts.php" method="post">
<input type="text" name="txt"/>
<input type="submit" name="insert" value="insert" />
<input type="submit" name="select" value="select"/>
</form>
<?php
function select() {
echo 'you pressed the [select] button';
exit;
}
function insert() {
echo 'you pressed the [insert] button';
exit;
}
?>