2016-05-07 44 views
0

假设您希望创建一个HTML/PHP脚本,该脚本生成一个包含2个按钮的网页,点击该按钮时,会告诉您哪个按钮已被点击。这样做,使用PHP,我知道的,唯一的方法是创建索引文件提交按钮是执行php文件的唯一方法吗?

<? include('buttons.php'); ?> 

<? include('clicked.php'); ?> 

凡buttons.php保存在同一目录下,并包含

<form method="post"> 

<input type="submit" name="button1" value="button1"> 
<input type="submit" name="button2" value="button2"> 

</form> 

而且PHP脚本点击.php包含

<?php 



if($_POST['button1']){ 
echo "You have clicked button1"; 

} 



elseif($_POST['button2']){ 
echo "You have clicked button2"; 

} 

?> 

此方法的工作原理,但我怀疑这不是使用PHP获得此结果的最佳方式。

有没有更好的方法来做到这一点?

+0

你已经在做正确的事 –

+0

你也可以使用一个参数,即链接。 '...'并检查if(isset($ _ GET ['action'])){if($ _ GET ['action'] =='button1'){} elseif($ _ GET ['action'] ==' button2'){}' – Sean

+0

你的问题是,有没有其他方式做到这一点,因为这似乎是调用PHP代码的正常方式。 –

回答

1

这是执行PHP文件的服务器端解决方案,但您可以使用客户端代码和通用处理程序来实现实时执行和页面加载。

jQuery是免费的,全球范围内用于JavaScript扩展的框架,并且易于使用。

$("#btn-one").click(function() { 
    $.get("clicked.php", { button: 1}) 
    .done(function (data) { 
     body.innerHTML = data; 
    }); 
}); 

你的PHP(clicked.php)是这样的:

if(isset($_GET['button'])): 
    switch($_GET['button']) 
    { 
     case 1: 
      echo "You pressed button 1"; 
      break; 
     case 2: 
      echo "You pressed button 2"; 
      break; 
     default: 
      break; 
    } 
endif; 

最后,你的HTML应该是这样的!

<button type="button" id="btn-one">Button 1</button> 
0

你可以创建自己的包装

class Input 
{ 
    public static function fetch($key, $rules=[]) 
    { 
     // ctype_alnum is used to check if the $key is alphanumeric 
     if (ctype_alnum($key) && isset($_POST[$key])) { 
      return $_POST[$key]; 
     } 
     return false; // or '' 
    } 
} 
// practical use 
// If string 
$option = (string) Input::fetch('option'); 

将名称更改为按钮[]

然后使用开关功能。

您可以使用rules参数添加验证规则并检查预期的响应类型。