Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Formularze
Sampo511
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Witam wszystkich

Mam następujący problem:

istnieje sobie formularz z jednym z polem typu "Lista rozwijalna"
oraz np. 3 pola typu tekstowego które są domyslnie zablokowane

teraz jesli z listy wybiorę jakąś wartość np. 2 to powinny się odblokować 2 pola teksowe a pozostałe 1 powinno pozostać zablokowane

problem wtym jak odblokować te pola teksowe

Prosze o jakieś sugestie

Pozdrawiam
Go to the top of the page
+Quote Post
UDAT
post
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Twoje pytanie bardziej niż PHP dotyczy JavaScriptu.
Go to the top of the page
+Quote Post
Sampo511
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Jestem we wstępnej fazie nauki ale chciałem to zrobić w PHP
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




PHP zrobisz to tylko z przeładowaniem strony więc zdecydowanie lepiej użyć do tego JS.
Go to the top of the page
+Quote Post
Sampo511
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


postanowiłem to zrobić w PHP z tym ze mam następujący problem
mam trzy pliki i następujący problem nie mogę odczytać zmiennej $IPW oraz $tyt_ank w trzecim pliku ankiety.php
prośze o jakąś sugestię z góry dzięki

pierwszy - panel_adm.php

Kod
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<title>PANEL ADMINISTRACYJNY</title>
</head>

<body>
<?php
       print '<CENTER>';
       print "<b>PANEL ADMINISTRACYJNY</b>


";
       print '<FORM ACTION="panel_adm1.php" METHOD="POST">';
     print "Tytuł ANKIETY:  ";
       print '<TABLE><input type="text" name="tyt_ank" size="30" maxlenght="50"/>

';
       print "Ile pól wyboru:  ";

       print '<SELECT name="IPW">';
             print '<OPTION value=0></OPTION>';
             print '<OPTION value=2>dwa pola</OPTION>';
             print '<OPTION value=3>trzy pola</OPTION>';
             print '<OPTION value=4>cztery pola</OPTION>';
             print '<OPTION value=5>pięć pól</OPTION>';
             print '<OPTION value=6>sześć pól</OPTION>';
             print '<OPTION value=7>siedem pól</OPTION>';
             print '<OPTION value=8>osiem pól</OPTION>';
             print '<OPTION value=9>dziewięć pól</OPTION>';
             print '<OPTION value=10>dziesięć pól</OPTION>';
       print '</SELECT>

';
       print '</TABLE>';

       print '<INPUT TYPE="submit" VALUE="Zatwierdź"></P>';
       print '</FORM></center>';

  ?>
</body>
</html>



drugi - panel_adm1.php

<?php

Kod
     print_r($_POST);
      if(($_POST['tyt_ank']=='')or($_POST['IPW']==0)){
      print "<CENTER><b>Nie wpisano tytułu ANKIETY LUB nie wybrano PÓL</b>

</CENTER>";
      require ('panel_adm.php');
      }
      else{

           print "<CENTER><b>PANEL ADMINISTRACYJNY</b>


";
           print '<FORM ACTION="ankiety.php" METHOD="POST">';
           print "Tytuł ANKIETY:  " .'<b>'. $_POST['tyt_ank'] . '</b>

';
           print "Wybrano pól:  " . '<b>'.$_POST['IPW'].'</b>

';
           print "Nazwa pola ANKIETY:  

";

           for($i=1; $i<=$IPW; $i++){
           print $i . "pole: ";
           print '<INPUT TYPE="text" name="opis".$i>

';
           }

       print '<INPUT TYPE="submit" VALUE="Twórz ANKIETĘ"></P>';
       print '</FORM></CENTER>';

       }
?>



i trzeci (we wstępnej wersji) ankiety.php

Kod
<?php
      // print_r($_POST);

       for($a=1; $a<=$IPW; $a++){
       print '<TABLE><input type="radio" name="opis" value="pole".$a>IPW

';
       }

       print '<INPUT TYPE="submit" VALUE="Twórz ANKIETĘ"></P>';
       print '</FORM></CENTER>';

?>


Ten post edytował Sampo511 16.08.2007, 15:29:04
Go to the top of the page
+Quote Post
Hazel
post
Post #6





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Na samym początku drugiego pliku dodaj na przykład kod:
  1. <?php
  2. foreach ($_POST as $klucz => $wartosc)
  3. {
  4. $_SESSION[$klucz] = $wartosc;
  5. }
  6. ?>


Kod ten umieść na samym poczatku drugiego pliku, inaczej nie będzie działać.
No a w trzecim pliku odwołujesz się do tych zmiennych za pomocą:
  1. <?php
  2. $_SESSION['IPW']
  3. $_SESSION['tyt_ank']
  4. ?>


Ten post edytował Hazel 16.08.2007, 15:42:01


--------------------
Go to the top of the page
+Quote Post
PanGuzol
post
Post #7





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


Do formularza w drugim pliku dodaj

  1. <?php
  2. print "<input type='hidden' name='tyt_ank' value='".$_POST['tyt_ank']."'>";
  3. print "<input type='hidden' name=' IPW' value='".$_POST['IPW']."'>';
  4. ?>


Ten post edytował PanGuzol 16.08.2007, 17:22:10


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
Sampo511
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Dzięki wielkie PanGuzol

Działa. Takie to było proste.
Go to the top of the page
+Quote Post
--Sampo511--
post
Post #9





Goście







Witam pojawił się inny problem a mianowicie nie mogę utworzyć tabeli w bazie danych z kolumnami których nazwy znajdują się w tablicy $_POST['opis'], są to dane tekstowe z pól tekstowych, których jest tyle ile się wybierz np.2 ale może też być to 10 pól (nie m stałej ilości tych pól)

Proszę o jakąś pomoc
Pozdrawiam


PHP MySQL
Kod
$d=$_POST['IPW'];
    
$sql = mysql_connect("localhost", "root", "") or
      die ("Sprawd połączenie z serwerem.");

      $create = mysql_query("CREATE DATABASE IF NOT EXISTS ankiety")
      or die(mysql_error());

      $db=mysql_select_db("ankiety")
      or die (mysql_error());



  [color="#FF0000"]  [b] $TA = "CREATE TABLE ".$_POST['tyt_ank']."";
     $results = mysql_query($TA)
     or die (mysql_error());
     print "Poprawnie utworzono tabę";
    
     for($a=0; $a<=$d; $a++){
     $add="ALTER TABLE ankiety.".$_POST['tyt_ank']."
           ADD COLUMN (".$_POST['opis'][$a]." varchar(255) NOT NULL UNIQUE default 0)";
           }[/b][/color]
      
     $results = mysql_query($add)
     or die (mysql_error());

     print "Poprawnie dodano kolumny z danymi";
            
      print '<CENTER><FORM ACTION="strona.php" METHOD="POST">';
    print "Tytuł ANKIETY:  " .'<b>'. $tyt_ank . '</b><br><br>';
    

            for($a=0; $a<=$d; $a++){
            print '<TABLE>';
            print '<input type="radio" name="ankieta" value="pole[]">'."$opis[$a]".'<br><br>';
            print '</TABLE>';

                  }
Go to the top of the page
+Quote Post
Sampo511
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Chodzi o to, że baza się tworzy z tym, że wtym przypadku nie tworzy mi wszystich kolumn w bazie (ich nazw)
Go to the top of the page
+Quote Post
PanGuzol
post
Post #11





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

Ostrzeżenie: (0%)
-----


W pętli wyświetlającej formularz z opisami dałeś apostrofy
  1. <?php
  2. for($i=1; $i<=$IPW; $i++){
  3.  print $i . "pole: ";
  4.  print '<INPUT TYPE="text" name="opis".$i>
  5.  
  6. ';
  7.  }
  8. ?>

więc twoje pola wyglądają
  1. <INPUT TYPE="text" name="opis".$i>

Zamień je na cudzysłowy
  1. <?php
  2. for($i=1; $i<=$IPW; $i++){
  3.  print $i . "pole: ";
  4.  print "<INPUT TYPE='text' name='opis'".$i.">";
  5.  }
  6. ?>


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
Sampo511
post
Post #12





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Witam PanieGuzol niestety to nie dział u mnie a pozatym musiałem zmienić trochę pętle wyświetlająca formularz bo wyswietlały mi się tylko pierwsze literki wyrazów
zmieniony kod:
Kod
<?php
            for($i=1; $i<=$IPW; $i++){
            print $i . " pole: ";
            print '<INPUT TYPE="text" [color="#ff0000"]name="opis[]"[/color]><br><br>';
            print '</TABLE>';
            }
              ?>


czy ktoś ma jakieś sugestie jak to zrobić??
Pozdrawiam

Ten post edytował Sampo511 19.08.2007, 10:38:52
Go to the top of the page
+Quote Post
--Sampo511--
post
Post #13





Goście







Witam już sobie sam poradziłem dział tak jak powinno tzn. błąd był w pętli for dodającej kolumny do tabeli w jej zakończeniu - nawias zamykający powinien być za:
$results = mysql_query($add) or die (mysql_error());
}

a nie przed tą komendą (wykonywało się tylko ostatnie dopisanie)

dzięki wszystkim za rady pozdrawiam
Sampo511
Go to the top of the page
+Quote Post
Sampo511
post
Post #14





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 14.08.2007

Ostrzeżenie: (0%)
-----


Witam mam następujące pytanie dlaczego niedziała mi poniższy kod a dokładniej dlaczego jeśli po utworzneiu ankiety nie wybiorę żadnej odpowiedzi to pojawia się ta ankieta ponownie - i to jest OK - ale jest ona już bez opisów.
jeśli sprawdzę print_r($POST) to mam:
po utworzneiu ankiety:
Array ( [tyt_ank] => restorante [pyt_ank] => jakia to cok [IPW] => 2 [opis] => Array ( [0] => [1] => nie [2] => tak ) )

po tym jak nie wybrałem zadnej odpowiedzi:

Array ( [tyt_ank] => restorante [pyt_ank] => jakia to cok [IPW] => 2 [opis] => Array ( [0] => Array ) )

  1. <?php
  2. //print_r($_POST);
  3.  
  4. $de=$_POST['IPW'];
  5.  
  6. $ileznaleziono=0;
  7. for($g=1; $g<=$de; $g++){
  8. if($_POST['opis'][$g]==''){
  9. $ileznaleziono++;
  10.  }
  11.  }
  12.  if($ileznaleziono!=0){
  13.  print "<CENTER><b>Nie wypełniono wszystkich pól !!!!</b>
  14.  
  15. ";
  16.  require ('panel_adm1.php');
  17.  }
  18. else{
  19. print_r($_POST);
  20. $de=$_POST['IPW'];
  21. print '<CENTER><FORM ACTION="strona.php" METHOD="POST">';
  22. print "<b>SONDA</b>
  23.  
  24.  
  25. ";
  26. //print '<b>'.$_POST['tyt_ank'].'</b>
  27.  
  28. ';
  29. print '<b>'.$_POST['pyt_ank'].'</b>
  30.  
  31. ';
  32. print "<input type='hidden' name='tyt_ank' value='".$_POST['tyt_ank']."'>";
  33. print "<input type='hidden' name='pyt_ank' value='".$_POST['pyt_ank']."'>";
  34. print "<input type='hidden' name='IPW' value='".$_POST['IPW']."'>";
  35. print "<input type='hidden' name='opis[]' value='".$_POST['opis']."'>";
  36.  
  37. for($b=1; $b<=$de; $b++){
  38. print '<TABLE>';
  39. print "<input type='radio' name='ankieta' value='".$_POST['opis'][$b]."'>".$_POST['opis'][$b]."
  40.  
  41. ";
  42. print '</TABLE>';
  43. //print_r($_POST);
  44. }
  45.  
  46. print '<INPUT TYPE="submit" VALUE="Głosuj">';
  47. print '</FORM></CENTER>';
  48. //require ('form.php');
  49.  //form($ankieta,$tyt_ank,$IPW,$opis);
  50.  
  51.  $sql = mysql_connect("localhost", "root", "php5") or
  52. die ("Sprawd połšczenie z serwerem.");
  53.  
  54. //$SQLL=mysql_query('SET CHARSET LATIN2');
  55. $create = mysql_query("CREATE DATABASE IF NOT EXISTS ankiety")
  56. or die(mysql_error());
  57.  
  58. $db=mysql_select_db("ankiety")
  59. or die (mysql_error());
  60.  
  61.  $TA = "CREATE TABLE ".$_POST['tyt_ank']."(";
  62.  for($a=1; $a<=$de; $a++){
  63.  $TA .= "".$_POST['opis][$a]." int(11) NOT NULL default 0 UNIQUE, ";
  64.  }
  65.  $TA = substr( $TA, 0, -);
  66.  $TA .= ")";
  67.  
  68.  $results = mysql_query($TA) or die (mysql_error());
  69.  print "Poprawnie utworzono tabelę
  70. ";
  71.  }
  72. ?>


i drugi kod:
  1. <?php
  2.  
  3. $e=$_POST['IPW'];
  4. //print_r($_POST);
  5.  
  6. if(empty($_POST['ankieta'])){
  7.  print("<B>Nie zaznaczono żadnej odpowiedzi!!! Wybierz ponownie</B>");
  8.  //$ileznaleziono=0;
  9.  require ('form.php');
  10. }
  11.  else{
  12. setcookie('glosowano',"1",time()+60);
  13.  
  14. $sql1 = mysql_connect ("localhost","root","php5")
  15. or die ("Nie można się połączyć");
  16.  
  17. $db1= mysql_select_db("ankiety", $sql1)
  18. or die (mysql_error());
  19.  
  20.  if($glosowano){
  21.  
  22. require('wyniki2.php');
  23. wyniki ();
  24. print("<b>Możesz oddać swój głos tylko raz dziennie!!!!</b>:");
  25. }
  26. else{
  27.  $query1=("UPDATE ".$_POST['tyt_ank']." SET ".$_POST['ankieta']."=".$_POST['ankieta']."+1")
  28.  or die ("błąd w pytaniu UPDATE");
  29.  $result = mysql_query($query1);
  30.  print("Dane zostały dopisane:");
  31.  require('wyniki2.php');
  32.  wyniki ();
  33.  }
  34. mysql_close($sql1);
  35.  
  36. }
  37.  
  38. ?>


jesli ma ktoś jakiś pomysł jak to rozwiązać prosze o radę

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:16