Zyggmunt
6.05.2009, 13:49:52
Witam.
Chcę zrobić formularz, który będzie musiał przyjąć 35 wartości z pola tekstowego. Jako, że jest to dosyć duża ilość posłużyłem się pętla. Wszystko w porządku z tym, że aby później odnieść się do poszczególnych pól tekstowych muszę użyć $_POST['name']. Oczywiście każda z tych "name" musi być inna, aby jedna nie nadpisywała drugiej. I tu moje pytanie. W jaki sposób zrobić, aby pola tekstowe same nazywały się kolejno:
name1,name2,name3...
Próbowałem w ten sposób:
<?php
$i=0;
echo $_POST['name.$i'];
echo '<form action="ten_plik.php" method="POST">';
for($i ; $i < 35 ; $i++)
{
echo '<input type="text" name="name.$i" />';
echo '<input type="submit" value="send" />';
}
echo '</form>';
?>
Ale nadal po wpisaniu do którejś rubryki jakiegoś tekstu, nie wyświetla się on przy pomocy: echo $_POST['nazwa.$i'];
Proszę o pomoc.
nie
<?php
?>
tylko
<?php
?>
a w razie wątpliwości co dociera do skryptu:
<?php
?>
okitoki
6.05.2009, 14:03:09
ja to pisze z głowy bez testu wiec przetestuj to sam
Kod
<?php
foreach($_POST as $name => $item)
if(eregi("(name)([0-9]{1,})",$name))
echo "{$name}:{$item}";
echo '<form action="ten_plik.php" method="POST">';
for($i=0; $i < 35; $i++)
{
echo '<input type="text" name="name'.$i.'" />';
echo '<input type="submit" value="send" />';
}
echo '</form>';
?>
maly_swd
6.05.2009, 14:29:58
i jeszcze ten submit lepiej dac go za petle..
Zyggmunt
6.05.2009, 14:50:26
Wielkie, wielkie dzięki ;] Nareszcie to zrobiłem. Wyobraźcie sobie, że męczyłem się z tym cały wczorajszy dzień, a wystarczyło tylko zapisać to w ten sposób: echo '<input type="text" name="nazwa'.$i.'" />';
Jeszcze raz dzięki ;]
Aha. Tak przy okazji. W jaki sposób zrobić aby wykonywał się jakiś skrypt php bez odświeżania całej strony. Np. tak jak na tym forum - klikamy szybka edycja i pojawia się jedynie okienko edycji, a nie odświeża się cała strona.
Przykładem też mogą być gry przez przeglądarkę gdy np. dodajemy sobie siłe itd.
Siła [+]
Zręcznośc [+]
Magia [+]
Klikamy na [+] i od razu dodaje się siła naszej postaci bez jakiegokolwiek odświeżania.
poczytaj o technologii AJAX.
Zyggmunt
6.05.2009, 20:10:16
Czy na stronie o rozszerzeniu *.php muszę dawać na początku:
CODE
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" dir="ltr">
<head>
<title>strona php</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
<meta http-equiv="Content-Language" content="pl"/>
?
Proszę o odpowiedź.
Chrom
7.05.2009, 07:53:22
Nagłówek strony jest informacją dla przeglądarki jak ma traktować treść i musi się tam znaleźć, a rozszerzenie php to informacja dla parsera
Zyggmunt
7.05.2009, 20:18:44
Mam tabelę:
CODE
for($i = 1 ; $i < 36 ; $i++)
{
$query = "SELECT * FROM kursy WHERE id='$i'";
$res = mysql_query($query);
$row = mysql_fetch_array($res,MYSQL_NUM);
echo "<tr><td><img src='flagi/$row[1]'/></td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td></tr>";
}
?>
Jednak nie wygląda ona zbyt dobrze na stronie, ponieważ jest zbyt długa. Jakiego skryptu musiałbym użyć aby rozsuwała się ona dopiero po najechaniu na tabelę, bądź np. po naciśnięciu strzałek w dół ?
nieraczek
7.05.2009, 20:45:15
Musisz wykorzystać JavaScript - pobierz najlepiej bibliotekę jQuery:
http://jquery.com/i skorzystaj z funkcji: toggle() - ukrywa element gdy widoczny badz pokazuje gdy ukryty
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.