我有一个PHP文件,其中包含另一个文件,用于通过循环MySQL查询的结果创建表,然后将所有HTML和PHP变量作为字符串返回。该字符串在div标签中回显。
创建表的PHP函数还会创建具有唯一名称和ID的输入元素,这些名称和ID来自它所在的行/列的名称。这意味着每个控件都是唯一的,我不知道哪个将用于提交数据。这样做我可以通过JavaScript使用在线编辑。这样,用户只需单击页面上表格中的元素,即可显示隐藏的输入控件。
点击提交表单帖子。要知道数据应该在数据库中的位置以及如何为更新生成SQL字符串,我需要获取已发布的文本框的名称。 post数组只包含两个元素,即提交按钮和文本框。我该如何解析这个名字?
目前我正在检查是否已使用以下代码设置了提交按钮:
if(isset($_POST['submit']))
{
//do stuff here
$sql= update TABLENAME set ...
$results = $dbConnect->prepare($sql);
}
等。
示例$_POST
数组内容是:
Array ( [submit] => submit [newText_primaryKey_columnName] => User Input Text )
答案 0 :(得分:0)
如果您知道数组中只有两个键,而您只想要一个未提交的键,请从数组中删除提交,剩下的就是您的键:
$post = $_POST;
unset($post['submit']);
$keys = array_keys($post);
$key = $keys[0];
一个完整的例子:
<?php
//$post = $_POST;
$post = array('submit' => True, 'some key I made up' => 'foobar');
unset($post['submit']);
$keys = array_keys($post);
$key = $keys[0];
print $key;
// some key I made up
答案 1 :(得分:0)
如果您使用标准名称(如单元格)启动所有Cell Id,则很容易将其拉出。
//Assuming CellID's Like cell_1, cell_2, cell_3 etc
foreach ($_POST as $Key => $Value) //Check all posted values
{
if (strpos('cell',$Key) !== false ) //if cell is at the begining of the key name
{
$OurKey = $Key;
//This will put cell into $temp and our id will be put in $CellID
list($temp,$CellID) = implode('_', $OurKey);
break;
}
}
//Do Something With Our ID
SubmitData($CellID, $Value);
我希望这就是你所追求的目标。
答案 2 :(得分:0)
如果您的$_POST
数组看起来像这样:
Array ( [submit] => submit [newText_primaryKey_columnName] => User Input Text )
然后你可以找到不是提交输入的密钥:
$my_key = '';
if (!empty($_POST)) {
foreach ($_POST as $key => $val) {
if ($key != 'submit') {
$my_key = $key;
}
}
}
//you can now access the value of your text input using $_POST[$my_key]
//you can also determine what to do with your information
$tmp = explode("_", $my_key);//$tmp[0] = "newText"; $tmp[1] = "primaryKey"; $tmp[2] = "columnName";