php - 使用一条 'isset' 语句处理不同的 PHP 提交

标签 php html mysql isset

我正在尝试使用 PHP 从 MySQL 数据库加载数据并以 HTML 格式提交图像。单击特定图像后,与图像关联的一些文本将通过 MySQL/PHP 加载到页面上。我想在不使用许多 isset 语句的情况下完成此操作。

HTML:

<input type="image" name="image1" src="img/image1.jpg"></input>
<input type="image" name="image2" src="img/image2.jpg"></input>
<input type="image" name="image3" src="img/image3.jpg"></input>
<input type="image" name="image4" src="img/image4.jpg"></input>
<input type="image" name="image5" src="img/image5.jpg"></input>

(我还有几个输入,如上所示,但为了简洁起见,已将其减少为五个输入)

PHP:

if(isset($_POST["image1"])){
    //load mysql data associated with image 1
}

if(isset($_POST["image2"])){
    //load mysql data associated with image 2
}

if(isset($_POST["image3"])){
    //load mysql data associated with image 3
}

if(isset($_POST["image4"])){
    //load mysql data associated with image 4
}

if(isset($_POST["image5"])){
    //load mysql data associated with image 5
}

我有大约 30 张这样的图片,所以我自然希望避免对每张图片都执行“if(isset)”语句,就像我在上面演示的那样。无论如何使用一个 isset 语句来处理这些唯一输入名称中的每一个?也许使用循环?谢谢。

最佳答案

你可以有一个字符串数组,其中每个字符串都是一个有效输入字段的名称,然后你可以对 $_POST 进行循环并查看是否每个字符串都设置在那里:

$validInputs = array('image1','image2','image3','image4','image5');

foreach( $_POST as $k=>$v ){
    if( in_array($k,$validInputs) ){
        // Do something
    }
}

这种类型的设置假定除了名称之外图像处理是相同的。这种使用输入白名单的方法在某些情况下也非常方便。引用in_array提供。

关于php - 使用一条 'isset' 语句处理不同的 PHP 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460661/

相关文章:

mysql - 当三个重复但不只是一个重复时更新重复列

php - 如何在 Kohana 中使 URL 中的参数名称默认并隐藏?

PHP MySQLi 准备好的语句选择在特定时间添加到记录中的行

php - 跟踪 2 个键数组

php - 检查以验证序列号

php - 转换编码的 utf-8 JSON

php - nodeJS + Socket.IO 和 PHP 如何集成?

javascript - 使用 javascript 构建 html 标签

jquery - 兄弟 div 没有接受最高命令

html - 用于存储页面上所有小图像的单个图像文件