我正在尝试使用 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/