2014-02-13 7 views
-2

각각 구입할 수있는 작은 노래 라이브러리가있는 2 개의 모의 음악 서비스를 만들어야하는 과제가 있습니다. 한 가지 일을하는 방법을 알아낼 수 있다면 나머지는 간단해야합니다. 나는 그럭저럭 checkboxes가 나의 파일에서 일할 수있게 할 수 있었다. 그러나 나는 한 가지를 아주 가볍게 수정했고, 이제 모든 것이 작동하기를 거부한다. 내가 알아야 할 것은 텍스트 파일 (배열에 넣음)을 사용하여 여러 체크 박스를 생성하고 선택한 선택 사항을 저장 한 다음 다른 .php 파일에서 읽을 수있는 새 텍스트 파일에 저장하는 방법입니다. 이것은 내가 지금까지 가지고있는 것이다.배열을 사용하는 PHP의 체크 박스

<html> 
<?php 
//Get contents from zmzonSongs.txt file, put into array. 
$songList = explode("\n", file_get_contents('zmzonSongs.txt')); 

//Print songs to be selected. 
foreach($songList as $songs){ 
    echo "<br/><input type='checkbox' name=\'$songList[]\' value='$songs />$songs<br>"; 
} 
?> 

</html> 

즉시 도움이 필요합니다. 임무 완수 예정이며이 작업을하기 위해 고심하고 있습니다. 사용자가 원하는 노래를 선택한 후에 배열의 내용을 일부 파일에 쓸 수 있도록해야합니다.

+0

..... value = '$ songs <<<<< 여기에 끝 인용문이 누락되었습니다 –

+0

저는 지금 고쳐 봤는데 아무 것도 해결하지 못했습니다. – user3308219

+0

참조 http://stackoverflow.com/questions/14026361/php-multiple-checkbox-array – snyx

답변

0

아마도 당신의 이름 = "$ songList []"에는 $가 필요하지 않다고 생각됩니다.

HTML 폼에서 PHP 배열로 체크 박스를 보낼 때 필자가 경험하지 않아도됩니다.

foreach($songList as $songs){ 
    echo "<br/><input type='checkbox' name='songList[]' value='$songs' />$songs<br>"; 
} 
+0

방금 ​​제거 했는데도 작동하지 않았습니다. – user3308219

+0

또한 이름 = 주위의 이스케이프는 필요하지 않습니다. – Enjabain

+0

내가 그럭저럭 일하게 할 수 있었던 한때는, 그것은 도피를 가지고 있었다. 나는 거의 즉시 그걸 실행 해 보았고 아무 것도 페이지에 나타나지 않았다. – user3308219

0
<?php 

$songs = explode("\n", trim(" 
Song #1 
Song #2 
Song #3 
Song #4 
Song #5 
Song #6 
Song #7 
")); 

print_r($songs); 

while ($song = array_shift($songs)) { 
    $song = trim(htmlentities($song)); 

    echo " 
<input type='checkbox' name='songList[]' value='$song'/> $song 
"; 
} 

는 생산 : 파일 저장 비트

Array 
(
    [0] => Song #1 
    [1] => Song #2 
    [2] => Song #3 
    [3] => Song #4 
    [4] => Song #5 
    [5] => Song #6 
    [6] => Song #7 
) 

<input type='checkbox' name='songList[]' value='Song #1'/> Song #1 

<input type='checkbox' name='songList[]' value='Song #2'/> Song #2 

<input type='checkbox' name='songList[]' value='Song #3'/> Song #3 

<input type='checkbox' name='songList[]' value='Song #4'/> Song #4 

<input type='checkbox' name='songList[]' value='Song #5'/> Song #5 

<input type='checkbox' name='songList[]' value='Song #6'/> Song #6 

<input type='checkbox' name='songList[]' value='Song #7'/> Song #7 

http://codepad.org/fK187pfz

그리고 :

http://us3.php.net/function.file-put-contents

if (is_array($_POST['songList']) 
    && !empty($_POST['songList'])) { 
    $songList = implode("\n", $_POST['songList']); 
    $songList = filter_var($songList, FILTER_SANITIZE_STRING); 

    file_put_contents($songList, '/your/path/to/directory/songList.txt'); 
} 

모든 노래를 삭제하고 싶다면 해결해 드리겠습니다. 그러나, 나는

강사는 아마 당신이 그래도 fopen()/fwrite()/fclose() 과정을하고 싶어 ... 당신이 당신의 submit 버튼에 name 속성이 제안, 그래서 나는 방법을 수행하는 예제들은 PHP 설명서를 확인 할 그.

+0

나는 .txt 파일에 10 곡의 노래가 있으며이 코드는 더 많은 노래가 텍스트 파일에 추가되는 경우 더욱 보편적으로 사용됩니다. 이 일을 어떻게 하죠? – user3308219

+0

'explode' 내의 문자열을'file_get_contents()'를 호출 한 것으로 대체하십시오. 코드 패드는이 기능을 허용하지 않으므로이를 증명할 수는 없습니다. '
'을'echo'd 줄 끝에 추가하고 싶을 수도 있습니다. –

+0

아마 주위에'label'을 사용하여 쉽게 클릭 할 수 있습니다 : http://codepad.org/GkhzIzUu 또한 행 변수에'$ songList' 대신'$ song'을 사용했는데, '노래'목록에서 '노래'를 선택한 다음 * 체크리스트 *는 실제 '노래 목록'입니다.변수의 이름을 올바르게 지정하면 혼란을 막을 수 있습니다. –

관련 문제