Php 如果名称是一个变量,如何使用$\u POST?
我有一个按钮,在循环中生成每个表行后生成,每个连续按钮的名称由$a++变量生成。如何在edit\u contact.php页面上使用$\u POST方法,以便使用$\u POST数组中的变量 变量存储在$\u POST数组中,我已使用Print\r($\u POST)进行了检查;例如,当我单击表格的第三行编辑按钮时,它将显示为:Php 如果名称是一个变量,如何使用$\u POST?,php,Php,我有一个按钮,在循环中生成每个表行后生成,每个连续按钮的名称由$a++变量生成。如何在edit\u contact.php页面上使用$\u POST方法,以便使用$\u POST数组中的变量 变量存储在$\u POST数组中,我已使用Print\r($\u POST)进行了检查;例如,当我单击表格的第三行编辑按钮时,它将显示为: Array ( [3] => edit ) 以下是我的list_contact.php页面上的循环代码: $a = "0"; // print whethe
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";
}
}
我怎样才能让那篇文章只反映我的变量?ie 3重新构造代码,使
名称
实际上是一个常量,值
是动态的
echo "<td><input id=button type=submit name=\"edit\" value=\"" . $a++ . "\"></td>";
它将产生值:value=\“”$a++。“\”
用于单击的按钮
它将根据您的需要返回类似于
3
。您可以使用隐藏的输入字段,而不是:
echo”“。“您可以执行一次。您不需要更多字段。只需使用foreach
访问其键
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
}
}
mysql\u num\u rows
和其他mysql函数已被弃用。请尝试使用mysqli
扩展或PHP数据对象(PDO)
既然你是一名学生,这将是一个不学习使用mysql_*函数的好时机,因为它们已被弃用。看看mysqli或PDO。不幸的是,这是他们给我们学习的材料。虽然我会把它记下来给我的老师,但我为什么要花钱学习旧材料。谢谢我从学生那里听到了很多这样的消息。这让我很难过目前,教科书落后于教师讲授的时间几年,这些教师本身并没有实践开发人员,因此没有跟上最新的技术。你是对的。虽然我认为在我的案例中,这非常令人担忧,因为我在上一次审查这一特定材料时才查阅,但上一次审查是在2014年5月6日。该单元是同样由老师准备并在网上发布,它甚至不是一本教科书。所以我认为这是完全不可接受的,我会提出正式的投诉。谢谢你的帮助。是的,没错,我需要按钮说我确实尝试过这个,我添加了隐藏的输入字段,它将变量带到$u POST数组中,尽管我不能t检索它。即使使用简单的echo“变量”。$\u POST[“ContactID”];它表示未定义的索引。您可以尝试添加echo“”,打印($\u POST),“”;
以查看发送的POST数据。如果“ContactID”“不存在,那么表单就有问题了。我让它工作了,尽管提交到$\u POST数组时ContactID变量始终是最后一个循环的值。因此,如果有十个联系人,那么ContactID将始终为10,因为在循环中生成的每个新隐藏输入都具有相同的名称,并且在循环完成时ContactID为10,因为按钮名称是一个递增变量,所以每个新按钮都生成一个唯一的名称,即表行号。还有其他想法吗?此解决方案要求您为每一行创建一个表单。你可能忘了这么做,只设立了一个正式的绝对冠军!正是我想要的。完美地工作
$_POST['edit'];
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
}
}