PHP提交表单不起作用

时间:2014-03-31 02:52:27

标签: php submit

下面是一段代码,用于将查询结果输入到单选按钮中。然后,当用户按下表单中的一个按钮时,它将移动到页面test.php。我遇到了一个问题,虽然第二个代码(在test.php上)似乎不起作用,虽然我看不出它应该没有任何理由。任何想法都很棒。谢谢。

<?php while($row = mysql_fetch_assoc($result)): ?>
<tr>
    <td><input type="radio" name="server" value="<?php echo $row['serverId']; ?>" /></td>
    <td><?php echo $row['userName']; ?></td>
    <td><?php echo $row['dateCreated']; ?></td>
    <td><?php echo $row['serverName']; ?></td>
    <td><?php echo $row['serverId']; ?></td>
    <td><?php echo $row['publicDNS'] ?></td>
    <td><?php echo $row['isRunning']; ?></td>
</tr>
<?php endwhile; ?>
</table>
<br>
<?php endif; ?>

<form method="post" name="server_information" id="server_information" action="test.php">
<input type="submit" name="server_stop" value="Stop Server"/>
<input type="submit" name="server_terminate" value="Terminate Server"/>
</form>

</body>
</html>  

第二代码:

<?php
if (isset($_POST['server_stop'])) {
    echo "Server Stopped";
}

if (isset($_POST['server_terminate'])) {
    echo "Server Terminated"
}

?>

4 个答案:

答案 0 :(得分:1)

$_POST['submit']必须为$_POST['server_stop']

<?php
if (isset($_POST['server_stop'])) {
    echo "Server Stopped";
}

if (isset($_POST['server_terminate'])) {
    echo "Server Terminated";
}

?>

答案 1 :(得分:0)

您的代码:

<?php
if (isset($_POST['server_stop'])) {
    echo "Server Stopped";
}

if (isset($_POST['server_terminate'])) {
    echo "Server Terminated"
}

?>

这两个条件在表单提交时都是正确的。如果您想区分按下哪个提交按钮,您需要进行隐藏输入并使用一些javascript:

<form method="post" name="server_information" id="server_information" action="test.php">
<input type="submit" name="server_stop" value="Stop Server" onclick="whatwasclicked(this);" />
<input type="submit" name="server_terminate" value="Terminate Server" onclick="whatwasclicked(this);" />
<input type="hidden" name="clicked" id="clicked" />
</form>

您的javascript将是:

function whatwasclicked(c) {
$("#clicked").val() = c.value;
}

现在在PHP方面,您将检查$_POST['clicked']并查看按下了哪个按钮。

编辑: 请注意,这里使用了Jquery ...所以一定要加载该库。

答案 2 :(得分:0)

如果您根本不想使用javascript,并且您只需要在表单中提供这些提交按钮,那么您也可以这样做:

<form method="post" name="server_information" id="server_information" action="test.php">
<input type="submit" name="clicked" value="Stop Server"/>
</form>
<form method="post" name="server_information" id="server_information" action="test.php">
<input type="submit" name="clicked" value="Terminate Server"/>
</form>

现在只需检查$_POST['clicked'],您就会看到按下了哪个按钮。

答案 3 :(得分:0)

if (isset($_POST['submit'])){
  $name =trim($_POST['name']);
  if (empty($name)){
    echo "please input name";    
  }
  else if (!preg_match("/^[a-zA-Z ]*$/",$name)){
    $namerr = "Only letters and white space allowed";
  }
}