Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz -> podgląd -> dopisanie do bazy
Forum PHP.pl > Forum > Przedszkole
roman
Chcę wykonać formularz, po wypelnieniu którego wyświetlą się dane które wprowadziłem. Na tej stronie powinienem sprawdzic czy dane są właściwe. Jeśli nie to wrócić do strony poprzedniej, jeśli tak do dopisac te dane do bazy mysql.

plik dodaj.php

Kod
<h1>dodawanie do katalogu</h1>

<form action="wypisz.php" method="post">

    <table>
    <tr><td>Firma:</td><td><input type="text" name="Firma" /></td></tr>
    <tr><td>Miejscowość:</td><td><input type="text" name="Miejscowosc" /></td></tr>
    <tr><td>E-mail:</td><td><input type="text" name="Email" /></td></tr>
    <tr><td>www:</td><td><input type="text" name="www" /></td></tr>
    </table>

    <p><input type="submit" name="Submit" value="Podgląd" /> <input type="reset" value="Kasuj" />

</form>


plik wypisz.php

Kod
<h1>podgląd wpisanych danych</h1>

<?php
    print("<p>Firma: <b>$Firma</b>");
    print("<p>Miejscowosc: <b>$Miejscowosc</b>");
    print("<p>E-mail: <b>$Email</b>");
    print("<p>www: <b>$www</b>");
?>

<p><input name="popraw" TYPE="button" VALUE="Popraw" onClick="history.go(-1)" /> <input type="submit" name="zapisz" value="Zapisz" />


Mam problem z ostatnim elementem - dopisaniem do bazy...
Misior
Aby dopisac do bazy musisz uzyc polecenia INSERT INTO
np.
  1. <?php
  2. $query = "INSERT INTO tabela (Firma, Miejscowosc,Email,www) VALUES ('".$_POST['Firma']."','".$_POST['Miejscowosc']."','".$_POST['Email']."','".$_POST['www']."');";
  3. $wynik = mysql_query($query);
  4. ?>


A jesli chcesz te dane pozniej odczytac to:
  1. <?php
  2. $wynik= mysql_query("select Firma,Miejscowosc,Email,www from tabela");
  3.  
  4. while($rekord = mysql_fetch_assoc($wynik)){
  5. $Firma = $rekord['Firma'];
  6. $Miejscowosc = $rekord['Miejscowosc'];
  7. $Email = $rekord['Email'];
  8. $www = $rekord['www'];
  9.  
  10. print "Dane ktore wprowadziles to $Firma , $Miejscowosc , $Email , $www";
  11. ?>


Nio i musisz pamietac aby najpierw polaczyc sie z baza!
dyktek
W momencie gdy wydkurujesz te dane na osobnej stronie możesz zrobić tak najporściej dodatkowe 4 pola input hidden w nich zapisac wartości zmiennych i wysłać je postem do pliku, który zapisze je do bazy

  1. <h1>podgląd wpisanych danych</h1>
  2.  
  3. <?php
  4. print("<p>Firma: <b>$Firma</b>");
  5. print("<p>Miejscowosc: <b>$Miejscowosc</b>");
  6. print("<p>E-mail: <b>$Email</b>");
  7. print("<p>www: <b>$www</b>");
  8. <form action="plik_zapisz.php" method="post">
  9. <input type="hidden" name="firma" value="'.$Firma.'">
  10. <input type="hidden" name="firma" value="'.$Miejscowosc.'">
  11. <input type="hidden" name="firma" value="'.$Email.'">
  12. <input type="hidden" name="firma" value="'.$www.'">
  13.  
  14. ';
  15. ?>
  16.  
  17. <p><input name="popraw" TYPE="button" VALUE="Popraw" onClick="history.go(-1)" /> <input type="submit" name="zapisz" value="Zapisz" />
  18. </form>


i treaz w pliku "plik_zapisz.php" odbierasz dane i zapisujesz je do bazy danych
roman
Dzięki Panowie za doychczasową pomoc.
Teraz plik wypisz.php wygląda tak:

Kod
<h1>podgląd wpisanych danych</h1>

<?php
    print("<p>Firma: <b>$Firma</b>");
    print("<p>Miejscowosc: <b>$Miejscowosc</b>");
    print("<p>E-mail: <b>$Email</b>");
    print("<p>www: <b>$www</b>");

   echo'
   <form action="zapisz.php" method="post">
   <input type="hidden" name="firma" value="'.$Firma.'">
   <input type="hidden" name="firma" value="'.$Miejscowosc.'">
   <input type="hidden" name="firma" value="'.$Email.'">
   <input type="hidden" name="firma" value="'.$www.'">
   ';
?>

<p><input name="popraw" TYPE="button" VALUE="Popraw" onClick="history.go(-1)" /> <input type="submit" name="Submit" value="Zapisz" />


natomiast zapisz.php

Kod
<?php
$db = mysql_connect("localhost", "root", "abcxyz");
mysql_select_db("katalog", $db);

$sql = "INSERT INTO katal (Firma,Miejscowosc,Email,www) VALUES ('".$_POST['Firma']."','".$_POST['Miejscowosc']."','".$_POST['Email']."','".$_POST['www']."');";

mysql_query($sql);
?>

<h1>dane zostały zapisane</h1>


Efekt jest taki, że do tabeli dopisuje się tylko kolejny ID dzięki autoinkrementacji a pozostałe cztery pola są puste sad.gif Zapewne źle odbieram dane w pliku zapisz.php tylko nie wiem jak to zrobić
piotrekkr
Kod
<form action="zapisz.php" method="post">
   <input type="hidden" name="firma" value="'.$Firma.'">
   <input type="hidden" name="firma" value="'.$Miejscowosc.'">
   <input type="hidden" name="firma" value="'.$Email.'">
   <input type="hidden" name="firma" value="'.$www.'">

dlaczego te pola maja taka sama nazwe questionmark.gif tu masz chyba blad.

poza tym :
Kod
$_POST['Firma']
to nie tyo samo co
Kod
$_POST['firma']
roman
serdeczne dzięki!
działa!
guitar.gif

Mam jeszcze takie pytanie czy jest jakaś możliwość ukrycia TEXTAREA questionmark.gif Teraz mam tak, że opis wyświetli mi się podwójnie: pod pozostałymi danymi oraz dodatkowo w polu TEXTAREA sad.gif Z tego co znalazłem w dokumentacjach to nie można w przypadku TEXTAREA użyć type="hidden" tak jak w INPUT mad.gif

Kod
<?php
    print("<p>Firma: <b>$Firma</b>");
    print("<br />Miejscowosc: <b>$Miejscowosc</b>");
    print("<br />E-mail: <b>$Email</b>");
    print("<br />www: <b><a href=\"http://$www\" target=\"_blank\">$www</a></b>");
    print("<br />Opis: <b>$Opis</b>");

   echo'
   <form action="zapisz.php" method="post">
   <input type="hidden" name="Firma" value="'.$Firma.'">
   <input type="hidden" name="Miejscowosc" value="'.$Miejscowosc.'">
   <input type="hidden" name="Email" value="'.$Email.'">
   <input type="hidden" name="www" value="'.$www.'">
<textarea type="hidden" name="Opis">'.$Opis.'</textarea>
   ';
?>
piotrekkr
hmm chcesz poprostu ukryc zawartosc textarea dobrze zrozumialem??
  1. <?php
  2. echo '<input type="hidden" value="'.$_POST['nazwa_textarea'].'" name="nazwa_textarea" />';
  3. ?>
roman
tak
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.