Formularz PHP - jak 'nie kasować' danych po przesłaniu

2011-06-13 14:23:20 Post #1 gość_diska

 
Proszę o pomoc. mam formularz w PHP.
Po uzupełnieniu formularza i kliknięciu przycisku "wyślij"
dane z formularza zostają wyczyszczone i przesłane do bazy, a chciałabym także, żeby pozostały wpisane w okienka (żeby okienko pozostało dalej uzupełnione wpisaną daną).

Czy może mi ktoś poradzić jak to zrobić ?
Z góry dziękuję za pomoc.

2011-06-13 14:32:50 Post #2 nospor

 
Dane z forma masz w $_POST.
Jeśli więc chcesz je gdzieś wyświetlić to robisz normalnie:
echo $_POST['zmienna'];

Jeśli chcesz wypełnić tą daną jakieś pole formularza to też normalnie:
echo '<input type="text" name="zmienna" value="'.$_POST['zmienna'].'" />';

2011-06-13 14:35:07 Post #3 gość_diska

 
Bardzo dziekuje, ale mnie chodzi o to, że:
mam uzupełniony formularz: imie, nazwisko ...
klikam wyślij i w tym momencie to co user uzupełnił w formularzu, to mi to znika,
a chciałabym, żeby ta sesja pozostała wpisana okienku formularza.

2011-06-13 14:39:05 Post #4 nospor

 
No to przecież ci napisałem, jak się tworzy formularz z wypełnionymi danymi:
echo '<input type="text" name="zmienna" value="'.$_POST['zmienna'].'" />';

2011-06-13 14:45:12 Post #5 gość_diska

 
niestety próbowałam, wypisuje mi w okienku formularza kod PHPowy

2011-06-13 14:51:05 Post #6 nospor

 
To może pokaż całość.
Zauważ, że ja ci podałem kod php i to co ja ci podałem masz wstawiać w bloku php a nie html. Może wcześniej formularz miałaś w html. Musisz go więc teraz przerobić na kod co ja ci podałem.

2011-06-13 15:06:14 Post #7 gość_diska

 
Faktycznie działa super

tylko że mam teraz błąd Wstaw ID zadania:
Notice: Undefined index: id_zadania in C:\Program Files\wamp\www ....

i nie wiem jak teraz z tego wybrać, bo do HTMLa wstawiłam PHP.

2011-06-13 15:12:29 Post #8 nospor

 
Bo przed wysłaniem formularza nie istnieją dane w $_POST. Musisz więc zrobić coś takiego:

$id_zadania = isset($_POST['id_zadania'] ) ? $_POST['id_zadania'] : '';
echo '<input type="text" name="id_zadania" value="'.$id_zadania.'" />';

Analogicznie pozostałe pola.

2011-06-13 15:16:35 Post #9 gość_diska

 
No właśnie tak mam:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <tr>
    <td> <font face="verdana" size="2" > <b> Wstaw ID zadania: </b> </font> </td>
    
    <?php
    
    $id_zadania 
= isset($_POST['id_zadania'] ) ? $_POST['id_zadania'] : ''
    
    
//echo '<td> <input size="6" type="text" maxlength="3" name="id_zadania" 
    //onkeyup="this.value = this.value.replace(/[^0-9]/g,'')" value="'.$_POST['id_zadania'].'" />';
    
    
echo '<td> <input size="6" type="text" maxlength="3" name="id_zadania" value="'.$_POST['id_zadania'].'" >';
?>
    
    </td>
    
</tr> </font>
<tr>  


i dalej się rzyca o ten index.

Jeszcze jedno pytanie: onkeyup="this.value = this.value.replace(/[^0-9]/g,'')" jak wstawiam do INPUT to też nie działa , a wcześniej działało w takim układzie jak value było puste. Mozna to jakoś zmodyfikować ?

2011-06-13 15:20:42 Post #10 nospor

 
No przecież napisałem, że przy polu już nie $_POST['id_zadania'] a $id_zadania Przypatrz się jeszcze raz mojemu poprzedniemu postowi

Pokaz cały kod z tym onkeyup co teraz masz.
Pamiętaj, że jak masz
echo 'blavbla';
to nie możesz tam wstawić apostrofa normalnie
echo 'bla'vb'la'; - to jest błąd.
Musisz go poprzedzić \
echo 'bla\'vb\'la'; - to jest ok.

2011-06-13 15:25:56 Post #11 gość_diska

 
Teraz to nie działa ani onkeyup ani zmienna
1
2
3
4
5
6
7
8
<?php
    
    $id_zadania 
= isset($_POST['id_zadania'] ) ? $_POST['id_zadania'] : ''
    
    
    
    echo 
'<td> <input size="6" type="text" maxlength="3" name="id_zadania" onkeyup="this.value = this.value.replace(/[^0-9]/g,'')" value="'$id_zadania'" >';
?> 

2011-06-13 15:26:45 Post #12 gość_diska

 
kod - jeszcze raz
1
2
3
4
5
6
7
8
9
10
11
12

<?php
    
    $id_zadania 
= isset($_POST['id_zadania'] ) ? $_POST['id_zadania'] : ''
    
    
    
    echo 
'<td> <input size="6" type="text" maxlength="3" name="id_zadania" 
onkeyup="this.value = this.value.replace(/[^0-9]/g,'')" value="'
$id_zadania'" >';
?>

2011-06-13 15:27:30 Post #13 nospor

 
Ale czemu nie czytasz wszystkiego co ci piszę? Naprawdę piszę tylko to co ci jest niezbędne.

1
2
3
<?php
 
echo '<td> <input size="6" type="text" maxlength="3" name="id_zadania" onkeyup="this.value = this.value.replace(/[^0-9]/g,\'\')" value="'.$id_zadania.'" >';
?>

2011-06-13 22:08:00 Post #14 gość_diska

 
bardzo serdecznie dziękuję za pomoc, jest ok

2011-06-14 08:31:37 Post #15 gość_diska

 
To jeszcze jedno pytanko: dlaczego reset mi nie czyści pola w formularzu po zastosowaniu powyższego kodu ?

1
  <input type="reset">   

2011-06-14 08:37:10 Post #16 nospor

 
reset czyści do stanu domyślnego. Gdy wypełniasz pole na dzień dobry, to stanem domyślnym jest właśnie ta wypełniona wartość

2011-06-14 08:44:01 Post #17 gość_diska

 
Aha a to dziękuje bardzo i miłego dnia

2012-01-07 15:41:04 Post #18 gość_andriej

 
a jak by było w przypadku listy rozwijanej ?

mam do wyboru opcje 1 i 2. Wybieram 2 i chce zeby po kliknięciu na button pozostalo 2

2012-01-07 16:24:34 Post #19 nospor

 
Zeby zaznaczyć jakąś opcję trzeba dodać selected, czyli np:
<option value="2" selected="selected">2</option>
Jedyne co musisz zrobic to gdy $_POST['twoj select'] bedzie rowne 2 to dopisac selected do option

Odpowiedz