我有一个按钮,在循环中生成每个表行后生成,每个连续按钮的名称由$ a ++变量生成。如何在edit_contact.php页面上使用$ _POST方法,以便我可以使用$ _POST数组中的变量?
变量存储在$ _POST数组中,我已经用Print_r($ _ POST)检查过;例如,当我点击表格的第三行编辑按钮时,它将显示为:
Array ( [3] => edit )
以下是list_contact.php页面上的循环代码:
$a = "0";
// print whether success or not
if ($rst)
{
if (mysql_num_rows($rst)>0) // chech there are records
{
echo "<form name=addcontact method=post action=edit_contact.php>";
echo "<table border=\"1\" cellspacing=\"0\">";
/*** print out feild names ***/
while ($row = mysql_fetch_array($rst)) // fetch each row
{
echo "<tr>";
for ($i=0; $i<mysql_num_fields($rst); $i++) //for ech row print out field values
{
echo "<td>" . $row[$i] . "</td>";
}
echo "<td>" . "<input id=button type=submit name=" . $a++ . " value=Edit" . "</td>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
}
else
{
echo "There are no records in the database";
}
}
以下是我在edit_contact.php上遇到问题的代码:
$qry = "SELECT * FROM contacts WHERE ContactID = " . $_POST;
我如何才能获得该帖子以反映我的变量?即3
答案 0 :(得分:1)
您可以使用隐藏的输入字段,而不是:
echo "<td>" . "<input id=button type=submit name=" . $a++ . " value=Edit" . "</td>";
echo '<td><form method="post"><input type="hidden" name="ContactID" value="'.($a++).'"><input id="button" type="submit" value="Edit"></form></td>';
然后检索隐藏的输入字段,如:
$ContactID = $_POST['ContactID'];
注意:在将数据用于SQL查询之前,您仍需要正确转义POST数据,但希望这会指向正确的方向。
答案 1 :(得分:1)
你可以做一次。您不需要任何其他字段。只需使用foreach
即可访问其key
foreach($_POST as $key => $value){
if(strtolower(trim($value)) == "edit"){ // Validate if editing being sent
// Display it if true
echo $key; // and this is the variable you want
}
}
答案 2 :(得分:0)
重构代码,使name
实际上是一个常量,value
是动态的。
echo "<td><input id=button type=submit name=\"edit\" value=\"" . $a++ . "\"></td>";
这样您就可以通过以下方式访问它:
$_POST['edit'];
对于单击的按钮,它将产生:value=\"" . $a++ . "\"
的值。
会根据您的需要返回3
之类的内容。