0

在我正在制作的表单中,我需要通知处理 php 脚本单击了哪个按钮。我有三个按钮,新建、保存和删除。我希望发布表单和所有按钮值,但表单 + 按钮点击后才会发布。我在这里查看 html 规范http://www.w3.org/TR/html401/interact/forms.html#submit-format但如果这是预期的,我还没有找到一些解释。我有这个 php 脚本

<?php
/**
tpost.php
*/
//Buttons
$new = $_POST['new'];
$save = $_POST['save'];
$delete = $_POST['delete'];
//Error: Notice: Undefined index: save in C:\wamp\www\form-dev\troll.php on line 7
//Forms
$city = $_POST['city'];
$zip = $_POST['zip'];
$cs = $_POST['cs'];
//Error: Notice: Undefined index: save in C:\wamp\www\form-dev\troll.php on line 8
//Buttons echo
echo '<b>'.$new.'</b>' .'<br/>';
echo '<b>'.$save.'</b>' .'<br/>';
echo '<b>'.$delete.'</b>' .'<br/>';

//Forms echo

echo '<b>'.$city.'</b>' .'<br/>';
echo '<b>'.$zip.'</b>' .'<br/>';
echo '<b>'.$cs.'</b>' .'<br/>';
?>

这是我正在使用的 html

<!Doctype html>
<head>
<meta charset="uft-8">
<title>Buttons post</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<style type="text/css">
label{
width:15%;
float:left;
font-style:italic;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
   $('.inew').on("click",function()
    {
    alert('new');
    });
     $('.isave').on("click",function()
    {
    alert('save');
    });
     $('.idelete').on("click",function()
    {
    alert('delete');
    });
    });
</script>
</head>
<body>
<form action="tpost.php" name="troll" method="post">
<label>Enter Your City</label><input type="text" name="city" value="some-city"/><br/><br/><br/>
<label>Enter Your Neighbourhood</label><input type="text" name="zip" value="my-zip" /><br/><br/><br/>
<label>Enter Your Nearest Shopping Mall</label><input type="text" name="cs" value="shop-here" /><br/>
<br/><hr/><br/>
<br/>
<hr/>
<input class="inew" type="submit" name="new" value="new" />
<input class="isave" type="submit" name="save" value="save" />
<input class="idelete" type="submit" name="delete" value="delete" />
</form>
</body>
</html>

对此有何解释?

4

1 回答 1

1

我在这里找到了答案http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

它说

如果一个表单包含多个提交按钮,只有激活的提交按钮是成功的。

于 2012-08-18T21:58:04.237 回答