![](/img/trans.png)
[英]How to get php $_POST['VARIABLE'] where input name is also a variable
[英]PHP: $_POST of input that has a variable name
所以,我很難弄清楚這一點。 我用來自Excel的值填充選擇框,並為選擇框指定工作表的名稱。
function populateDropDown($excelSheet) {
$objPHPExcel = PHPExcel_IOFactory::load($excelSheet, $num);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$worksheetTitle = $worksheet->getTitle();
$highestRow = $worksheet->getHighestRow(); // e.g. 10
$highestColumn = $worksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$nrColumns = ord($highestColumn) - 64;
echo '<select name= ' . $worksheetTitle . '>';
for ($row = 1; $row <= $highestRow; ++ $row) {
for ($col = 0; $col < $highestColumnIndex; ++ $col) {
$cell = $worksheet->getCellByColumnAndRow($col, $row);
if ($col == 0) {
$id = $cell->getValue();
} else if ($col == 1) {
$val = $cell->getValue();
}
}
echo '<option value=' . $id . '>';
echo $val;
echo '</option>';
}
echo '</select>';
}
return $worksheetTitle;
}
在此函數的結尾,我返回標題並將其存儲在表單頁面上的變量中。
<?php $selectBox1 = populateDropDown("workbook1.xlsx"); ?>
提交表單后,如何獲取此變量的數據? 我已經嘗試了以下方法而無法正常工作:
$var = $_POST[$selectBox1];
$var = $_POST['$selectBox1'];
$var = $selectBox1;
硬編碼工作表名稱有效,但是:
$var = $_POST['Sheet1'];
因此,我很肯定這是變量的問題。 抱歉,如果以前沒有問過這個問題,我搜索了很長時間,但沒有找到任何幫助。 感謝您的任何幫助!
再次,只是為了澄清我的問題,當選擇框的名稱使用變量命名時,如何使用$ _POST從選擇框獲取數據?
編輯:添加了populateDropDown函數的整體
您為什么不還發送帶有工作表標題的隱藏值,為隱藏的輸入提供您確實知道的名稱,然后您可以從$ _POST數組中獲取該名稱。
<input type="hidden" name="my-select-name" value="<?php echo $worksheetTitle;?>">
然后,在發布表單之后,在您的處理腳本中,您可以獲取值並將其用於標識您的選擇框。
$value = $_POST['my-select-name'];
$selectdata = $_POST[$value];
您想要做的是重塑選擇框的命名,在HTML中嘗試將選擇框的值設置為數組:
<select name='[select][".$worksheetTitle."]'>
<option>...</option>
</select>
然后,當您獲得$_POST
數據時,可以通過[select]數組運行一個foreach
,該數組將是一個1值的數組:
if (count($_POST['select']) > 0 ){
foreach ($_POST['select'] as $key=>$value){
$this_is_the_worksheet_name = $key;
$this_is_the_worksheet_select_value = $value;
}
}
這將使您可以訪問值,這有點冗長,但是您的問題似乎被刪節了,因此我已經做了很長一段時間。 將選擇選項放入數組中的原因是,通過foreach
訪問數組鍵(因此工作表名稱)很簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.