Передайте значение раскрывающегося списка php другому php-сайту

Я новичок в php, и хотел бы передать значение выпадающего меню в другой файл php. Ниже приведен код, который я собрал до сих пор.

Выпадающий php (перечисляет все файлы в каталоге, хотя я хотел бы опустить папки и "." & ".."):

 <?php
$currentdir = 'data/';
$dir = opendir($currentdir);
echo 'Files are as follows:<br>';
echo '<form action="SelectedDate.php" method="POST">';
echo '<select name="selectedfile" onchange="this.form.submit()">';
while($file = readdir($dir))
{
    echo '<option value="'.$file.'">'.$file.'</option>';
}
echo '</select>';
echo '</form>';
closedir($dir);
?>    

Создание таблицы php, где я тоже хотел бы передать имя файла, чтобы он мог получить выбранный CSV-файл, отформатированный в таблицу.:

<?php
$var=$_REQUEST['selectedfile'];
$row = 1;
if (($handle = fopen('"data/"'$var'"', "r")) !== FALSE) {
    echo '<head>';
    echo '<script src="js/sorttable.js"></script>';
    echo '</head>';
    echo '<table class="sortable" border="1">';
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        if ($row == 1) {
            echo '<thead><tr>';
        }else{
            echo '<tr>';
        }  
        for ($c=0; $c < $num; $c++) {
            //echo $data[$c] . "<br />\n";
            if(empty($data[$c])) {
               $value = "&nbsp;";
            }else{
               $value = $data[$c];
            }
            if ($row == 1) {
                echo '<th>'.$value.'</th>';
            }else{
                echo '<td>'.$value.'</td>';
            }
        }

        if ($row == 1) {
            echo '</tr></thead><tbody>';
        }else{
            echo '</tr>';
        }
        $row++;
    }

    echo '</tbody></table>';
    fclose($handle);
}
?>

Я не могу получить выпадающее значение для передачи в функцию fopen()...

Любая помощь и критика будут великолепны!

2 ответа

Решение

Для удобства чтения я бы предпочел $_POST вместо $_REQUEST, кроме того, у вас есть ошибка:

(($handle = fopen('"data/"'$var'"', "r"))
   //SHOULD BE:
(($handle = fopen("data/".$var.", "r"))

======

Обновленный ответ:

Убедитесь, что ваши файлы сохранены с расширением.php. Кроме того, добавьте следующие строки кода в начало вашего второго файла:

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">

В качестве завершающей попытки используйте этот код в if

(($handle = fopen("data/{$var}", "r"))

Измените эту строку:

if (($handle = fopen('"data/"'$var'"', "r")) !== FALSE) {

В

if (($handle = fopen('"data/"'.$var.'"', "r")) !== FALSE) {

Обратите внимание на точки!

Другие вопросы по тегам