我创建了两个.php网页。第一页有以下代码:
样本1.php
<?php
echo "<html>";
echo "<body>";
echo "<form action='"sample2.php'" method='"post'">";
echo "<table width='100%'>";
echo "<tr><td width='30%'><font size='5' color='#003399'>Message 1</font></td><td align='center' width='50%'><font size='5' color='#003399'>Message 2</font></td></tr>";
for ($i=0;$i<5;$i++) {
if($i == 0)
{
echo "<tr><td bgcolor='"#EAEAEA'" style='"color:#003399'">$i</td><td align='center'><input type='text' name='tarea'></td></tr>";
}
else
{
echo "<tr><td bgcolor='"#EAEAEA'" style='"color:#003399'">$i</td></tr>";
}
echo "<tr><td><div>";
echo "<input type='"submit'" name='"version'" value='"ant'"> ";
echo "<input type='"submit'" name='"version'" value='"bat'"> ";
echo "<input type='"submit'" name='"version'" value='"cat'"> ";
echo "</div></tr></td>";
}
echo "</table>";
echo "</form>";
echo "</body>";
echo "</html>";
?>
第二页如下:
样本2.php
<?php
$vers = $_POST['version'];
$area = $_POST['tarea'];
echo "This is selected value: $vers<br>";
echo "this is textbox value: $area<br>";
?>
当我单击 sample1.php 上的按钮时,它会按预期传递到下一页。但是,当我在文本框中输入值并按 Enter 时,默认情况下第一个按钮也会与文本框值一起提交。
预期输出:
如果单击样本 1.php 上的按钮,则应将相同的按钮传递给样本 2.php。接下来,如果在 sample1.php 的文本区域中输入了值,则只应将该值传递给 sample2.php而不是按钮值。
谢谢
麦迪
您需要
做的是检查提交是否已设置并等于输入的给定值。
这只是这样做的一种方式。还有其他方法。
if(isset($_POST['version']) && $_POST['version'] == 'ant'){
$vers = $_POST['version'];
// ant was fired
}
if(isset($_POST['version']) && $_POST['version'] == 'bat'){
$vers = $_POST['version'];
// bat was fired
}
if(isset($_POST['version']) && $_POST['version'] == 'cat'){
$vers = $_POST['version'];
// cat was fired
}
旁注:不过我会删除这些
。它们可能会对PHP产生不利影响。分号是语句字符的结尾。
编辑:
foreach
和传递键值的示例:
$var = "";
foreach($_POST['version'] as $key => $value) {
if(!empty($value)) {
$var .= $key. "='".$value."',";
}
}