这是我目前正在研究的PHP实验。它将成为更大文件的一部分。 我们的想法是,程序将在表单中生成一组提交按钮,并为此约定中的每个按钮分配唯一的名称: btn [按钮的顺序 ]
然后页面将轮询以查找是否使用isset()按下了任何按钮。这是我到目前为止所做的事情。
<html>
<head>
<title>Test Dynamic Naming</title>
</head>
<body>
<form action="testDynamicNaming.php" method="POST">
<?php
$row = 9;
for($i = 0; $i < $row; $i++) {
$name = 'btn['.$i.']';
?>
<input type="submit" name="<?php echo $name; ?>" value="<?php echo $name; ?>"/>
<?php
echo "<br>";
}
?>
</form>
<?php
extract($_REQUEST);
for($i = 0; $i < $row; $i++) {
$name = 'btn['.$i.']';
if(isset($_POST[$name])) {
echo "<br><br>".$name.' is pressed.';
}
// OR
if(isset($$name)) {
echo "<br><br>".$name.' is pressed.';
}
}
?>
</body>
</html>
我设法按照我的意愿设置按钮的名称和值,但页面无法检测到按下的按钮。我在这里缺少什么,或者还有其他方法可以完成同样的任务吗?
答案 0 :(得分:2)
if(isset($_POST['btn'])){
foreach($_POST['btn'] as $key => $value){
echo "Button {$key}:{$value} pressed";
}
}
答案 1 :(得分:1)
你可以使用
if(isset($_POST['btn'][$i])) {
echo "<br><br>".$_POST['btn'][$i].' is pressed.';
}
答案 2 :(得分:1)
也许使用javascript?
很容易,例如 <input type="submit" name="<?php echo $name; ?>" onclick="document.getElementById('<?php echo $name; ?>_pressed').value='true';" value="1"/>
<input type="hidden" id="<?php echo $name; ?>_pressed" name="x1_pressed" value="false">
if(isset($_POST[$name]) == "true") {