Php HTML复选框和表单中的单个输入
我使用的是基于 我曾经使用循环生成一个简单的图库 您可以删除单个图像,或选中复选框,然后单击任何删除按钮提交Php HTML复选框和表单中的单个输入,php,html,checkbox,twig,Php,Html,Checkbox,Twig,我使用的是基于 我曾经使用循环生成一个简单的图库 您可以删除单个图像,或选中复选框,然后单击任何删除按钮提交 {{record.name}是数据库中的图像名称 小枝成形 问题 呈现HTML <form> <img src="images/image1.jpg"> <input type="hidden" name="single" value="image1" > <input type="checkbox" name="que
{{record.name}
是数据库中的图像名称
小枝成形
问题
呈现HTML
<form>
<img src="images/image1.jpg">
<input type="hidden" name="single" value="image1" >
<input type="checkbox" name="queued[]" value="image1" />
<img src="images/image2.jpg">
<input type="hidden" name="single" value="image2" >
<input type="checkbox" name="queued[]" value="image2" />
<img src="images/image3.jpg">
<input type="hidden" name="single" value="image3" >
<input type="checkbox" name="queued[]" value="image3" />
</form>
复选框Delete运行for循环并起作用
但是单次删除总是删除表单image3
上最后一个name=“Single”
我尝试将$\u POST['single']
设置为数组name=“single[]”
,但它删除了所有文件,因为它们不是type=“checkbox”
,并且总是isset
并添加到数组中
我如何解决这个问题,并使复选框删除和单一删除以相同的形式出现?我对您的用户体验不是很直观。添加一个名为“删除选中的图像”的按钮会更好。 无论如何,您都可以设置submit的动态值
{% for record in records %}
<!-- [...] -->
<button type="submit" name="submit" value="{{ record.name }}">Delete</button>
{% endfor %}
{%用于记录%中的记录]
删除
{%endfor%}
然后
函数onDelete(){
$checkbox=isset($\u POST['queued'])?$\u POST['queued']:数组();
//复选框删除
如果(isset($_POST['queued'])){
//删除队列数组中的每个
foreach($name形式的复选框){
文件::删除(“$path$name.jpg”);
}
}
//单删除
否则{
$nameFile=$\u POST['submit'];//当您将属性类型与名称混淆时,将不起作用。此外,您不需要将名称设置为动态,因为单击按钮的值将设置为post值感谢您帮助我解决此问题,我花费了很多时间和解决方案。它现在通过复选框和单个按钮进行删除。我还添加了一个“删除”复选按钮。@DarkBee它正在工作,我已经测试过好几次了。虽然你说type=“submit”{{{record.name}}应该是type=“submit”?是的,我就是这么说的。没有像submit\u blablabla
这样的类型,但只找到了有效的类型。是的,对不起,谢谢@DarkBee,我写这篇文章很匆忙
<form>
<img src="images/image1.jpg">
<input type="hidden" name="single" value="image1" >
<input type="checkbox" name="queued[]" value="image1" />
<img src="images/image2.jpg">
<input type="hidden" name="single" value="image2" >
<input type="checkbox" name="queued[]" value="image2" />
<img src="images/image3.jpg">
<input type="hidden" name="single" value="image3" >
<input type="checkbox" name="queued[]" value="image3" />
</form>
{% for record in records %}
<!-- [...] -->
<button type="submit" name="submit" value="{{ record.name }}">Delete</button>
{% endfor %}
function onDelete() {
$checkboxes = isset($_POST['queued']) ? $_POST['queued'] : array();
// Checkbox Delete
if(isset($_POST['queued'])) {
// Delete each in queued array
foreach($checkboxes as $name) {
File::delete("$path$name.jpg");
}
}
// Single Delete
else {
$nameFile = $_POST['submit']; // <-----
File::delete("$path$nameFile.jpg");
}
}