PHP - выпадающий список для отображения содержимого .txt - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть форма с выпадающим списком названий песен. Я хочу иметь возможность щелкнуть по одному из названий песен, и текст песни будет загружен на одной странице. Тексты песен содержатся в файлах .txt в папке «Lyrics».

Пример:

Раскрывающийся список содержит: SONG1 Song2 Song3 и т.д.

Когда пользователь нажимает на песню, содержимое соответствующего файла .txt отображается на той же странице. Есть идеи?

Ответы [ 4 ]

1 голос
/ 01 декабря 2009

Было бы проще использовать JQuery:

<code><a href="somefile.txt" class="link">Song 1</a>
<pre id="lyrics">
$ (Функция () { $ ( 'Ссылку'). Выберите (функция () { $ .Get (this.href, NULL, функция (текст) { $ ( '#') Текст HTML (текст). вернуть ложь; }); }); });
0 голосов
/ 01 декабря 2009

Если у вас есть список песен и вы используете простое соглашение об именах, используйте его в качестве белого списка, чтобы проверить, разрешено ли значение GET, прежде чем вы даже подумаете об использовании

file_get_contents

    $song = $_GET['song'] ;
    $file = '/Lyrics/' . $song . '.txt' ; 
    $songs = array( 'help', 'she-loves-you', 'yellow-submarine' );

   // as a double check see if the file exists too

   if( in_array( $song, $songs ) && file_exists( $file ) ) {
       echo file_get_contents( $file );
    }

Если вы умны, вы также можете использовать тот же массив $ songs для создания вашего выпадающего списка.

<значение параметра = желтая подводная лодка> желтая подводная лодка

И затем, если вы сохраните это в базе данных, вы можете решить, что «желтая подводная лодка» будет идеальным закрытым ключом, но не заставляйте меня начинать с этого ...

0 голосов
/ 01 декабря 2009
<?php
    $song = intval( $_GET[ 'song_id' ] );
    $songs = array( 0 => NULL, 1 => 'Song1', 2 => 'Song2', 3 => 'Song3' );
    echo file_get_contents( $songs[ $song ] . '.txt' );
?>

Удачи!

0 голосов
/ 01 декабря 2009

Это быстрое решение, но крайне ненадежное, используйте его только в качестве примера, как это можно сделать, но не следует:

<?

// код вашей страницы здесь // это тело, куда вы хотите поместить текст песни

file_get_contents($_GET['songName'].".txt")

// еще ..

?>

в меню:

<a href="songs.php?songName=song1">song1</a>
...