Wpis z mikrobloga

#php.owe mirki, chcę zrobić formularz, który będzie zapisywał odpowiedzi do pliku csv. Oto co na razie mam:

w index.html:

Podaj swoje imię:

Podaj swój wiek:

Pytanie nr 1:Prawda Fałsz

Pytanie nr 2:Prawda Fałsz

Pytanie nr 3:Prawda Fałsz

w dane.php:

php<br/
$list = array (

array($POST['imie']),

array($
POST['wiek']),

array($_POST['Pyt1']),

array($_POST['Pyt2']),

array($_POST['Pyt3']),

);

$filename= "2.csv";

$fp = fopen('1.csv', 'w');

foreach ($list as $fields) {

fputcsv($fp, $fields,',','"');

}

fclose($fp);

?>

W formularzu na razie są 3 pytania z radio buttonami, chciałbym aby było ich 30: Pyt nr 1, Pyt nr 2, ... , Pyt nr 29, Pyt nr 30. Pytanie jak to zrobić w pętli?

#programowanie
  • 13
  • Odpowiedz
@lasso: Jako nazwy inputów możesz ustawić coś takiego name="pyt[]" automatycznie stworzy ci tablicę array.

Ten zapis: array($POST['imie']), wydaje się kompletnie bez sensu, tworzysz jednoelementową tablicę, możesz napisać po prostu

array($POST['imie'], POST['wiek'] itd... ale najlepiej byłoby to zrobić
  • Odpowiedz
@Xayan działa, ale wszystkie wartości w pliku csv są teraz w jednej linii, oddzielone przecinkami, a chcę żeby każda wartość była w osobnej linii.
  • Odpowiedz
@Xayan: Super działa, dzięki.

Mam jeszcze jedno pytanie:

Jak zrobić, żeby ten kod był wykonywany w pętli, tak aby wyświetlić na stornie np. 30 pytań. Próbowałem z echo, ale jest problem z cudzysłowami i nie
  • Odpowiedz
Dla przykładu próbowałem wyświetlić w pętli to:

Pytanie nr 1 :Prawda Fałsz

i chciałem zrobić tak jak poniżej, ale nie działa

for( $x = 1; $x <= 10; $x++ ){
  • Odpowiedz
@Xayan zamiast wyświetlić w pętli Pytanie nr x i po dwa pola radio wyświetla na stornie:

';} } ?>

Jeśli wpisze: Pytanie nr 1 :Prawda Fałsz

to działa dobrze
  • Odpowiedz
Już wiem o co chodzi ten kod miałem w pliku html, w którym nie był interpretowany kod php. Umieściłem w pliku php i zaczęło działać. Jeśli chodzi o cudzysłów to poradziłem sobie poprzez dodanie znaku \ przed każdym " w kodzie html. Działa jak chciałem :)
  • Odpowiedz