簡體   English   中英

PHP:輸入$ _POST具有變量名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM