• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesłanie danych z formularzu do bazy

Object Storage Arubacloud
0 głosów
215 wizyt
pytanie zadane 21 kwietnia 2017 w PHP przez Ziuziek Mądrala (5,140 p.)

Witam mam pytanie mam tak:

			<label for="opcje">Opcje (Proszę zaznaczyć przynajmniej jedną z opcji):</label>
			 <p>
				Z wyżywieniem <input name="opcje[]" id="opcja1" value="food" data-parsley-mincheck="1" type="checkbox"><br>
				Z dojazdem <input name="opcje[]" id="opcja2" value="drive" type="checkbox"><br>
				Z ubezpieczeniem <input name="opcje[]" id="opcja3" value="insurance" type="checkbox"><br>
			</p>

I teraz pytanie jak przypisac te POSTy do zmiennych, jeśli np zaznacze 2 opcje, zeby później móc to przesłać do bazy jeśli tu wchodzi w gre tablica?

1 odpowiedź

–4 głosów
odpowiedź 21 kwietnia 2017 przez Chess Szeryf (76,710 p.)

Nie wiem, co to za dziwny twór. ;) Może spróbuj tak:

Lekko zmodyfikowałem twój kod, ale wydaję mi się, że on jest w całości do przepisania.

<form method="post">
	<label for="opcje">Opcje (Proszę zaznaczyć przynajmniej jedną z opcji):</label>
		<p>
			Z wyżywieniem <input name="opcja1" id="opcja1" value="food" data-parsley-mincheck="1" type="checkbox"><br>
			Z dojazdem <input name="opcja2" id="opcja2" value="drive" type="checkbox"><br>
			Z ubezpieczeniem <input name="opcja3" id="opcja3" value="insurance" type="checkbox"><br>
		</p>
	<input type="submit"/>
</form>
<?php 
if(isset($_POST['opcja1'])==true){
	echo 'Masz zaznaczoną opcję 1';
}else{ 
	echo 'nie masz jej zaznaczonej';
}
echo "<br />";
if(isset($_POST['opcja2'])==true){
	echo 'Masz zaznaczoną opcję 1';
}else{ 
	echo 'nie masz jej zaznaczonej';
}
?>

 

komentarz 21 kwietnia 2017 przez Ziuziek Mądrala (5,140 p.)
edycja 21 kwietnia 2017 przez Ziuziek

Nie działa :(

zrobilem tak :

        <label for="opcje">Opcje (Proszę zaznaczyć przynajmniej jedną z opcji):</label>

	 <p>
		Z wyżywieniem <input name="opcje1" id="opcje1" value="food" data-parsley-mincheck="1" type="checkbox"><br>
		Z dojazdem <input name="opcje2" id="opcje2" value="drive" type="checkbox"><br>
		Z ubezpieczeniem <input name="opcje3" id="opcje3" value="insurance" type="checkbox"><br>
	</p>

 

A w pliku do wysylki formularz.php zrobilem tak:

<?php
    require 'database.php';

    if (!empty($_POST)) {
        $name = $_POST['fullname'];
        $email = $_POST['email'];
        $gender = $_POST['gender'];
		$opcja1 = $_POST['opcje1'];
		if(isset($_POST['opcja1'])==true){
			echo 'Masz zaznaczoną opcję 1';
		}else{ 
			echo 'nie masz jej zaznaczonej';
		}




		$opcja2 = $_POST['opcje2'];
		if(isset($_POST['opcje2'])==true){
			echo 'Masz zaznaczoną opcję 1';
		}else{ 
			echo 'nie masz jej zaznaczonej';
		}
		
		
		
		$opcja3 = $_POST['opcje3'];
		if(isset($_POST['opcje3'])==true){
			echo 'Masz zaznaczoną opcję 1';
		}else{ 
			echo 'nie masz jej zaznaczonej';
		}		
		

I bledy wyskakuja takie:

Notice: Undefined index: opcje1 in C:\xampp\htdocs\tester\formularz.php on line 8
nie masz jej zaznaczonej
Notice: Undefined index: opcje2 in C:\xampp\htdocs\tester\formularz.php on line 18
nie masz jej zaznaczonej
Notice: Undefined index: opcje3 in C:\xampp\htdocs\tester\formularz.php on line 27
nie masz jej zaznaczonejarray(3) { [0]=> string(5) "23000" [1]=> int(1048) [2]=> string(30) "Column 'opcje1' cannot be null" }

 

 

Jesli zaznaczam checkboxa to czemu wartosci z niej nei zczytuje?

komentarz 21 kwietnia 2017 przez Boshi VIP (100,240 p.)
Jaki dziwny twór?  Normalne rozwiązanie..

 

Jeżeli zaznaczasz [] to dostajesz tablicę checkboxow w post.
4
komentarz 21 kwietnia 2017 przez efiku Szeryf (75,160 p.)
Kurw.a Chess powinieneś dostać zakaz komentowania i odpowiadania pod tagiem php, jak zawsze bzdury piszesz i wprowadzasz w błąd ludzi.

 

Ziuziek, jeśli wyślesz to sposobem tablic to w php odbierzesz to tak:

< input xxx name="opcja[]" >

< input xxx name="opcja[]" >

< input xxx name="opcja[]" >

Po wciśnięciu submit następujące dane zostaną przesłane tak:

$_POST["opcja"] = [  "opcja1", "opcja2", "opcja3"]

Po prostu pod kluczem opcja w tablicy $_POST będziesz miał te swoje inputy (wartości)

Dlatego czasem warto stosować odpowiednie nazewnictwo:

< input xxx name="opcja[plec]" >

< input xxx name="opcja[wiek]" >

< input xxx name="opcja[data]" >

 

Daje ===>

 $_POST["opcja"] = [

   "plec" => "m",
   "data" => "2016-03-03",
 ...
];
komentarz 22 kwietnia 2017 przez Chess Szeryf (76,710 p.)

To ja przepraszam za wprowadzenie innych użytkowników w błąd. frown

komentarz 22 kwietnia 2017 przez Ziuziek Mądrala (5,140 p.)

Ok ale jak to wyslac do bazy? bo zrobilem tak:

 

<?php
    require 'database.php';

    if (!empty($_POST)) {
        $name = $_POST['fullname'];
        $email = $_POST['email'];
        $gender = $_POST['gender'];
		$opcja = $_POST['opcja'];
		

		


        $pdo = Database::connect();
        $sql = "INSERT INTO formularz(id, name, EMail, gender, opcje) values("
                . "NULL, :fullname, :email, :gender, :opcja)";
        $q = $pdo->prepare($sql);
        $q->bindValue(':fullname', $name, PDO::PARAM_STR);
        $q->bindValue(':email', $email, PDO::PARAM_STR);
        $q->bindValue(':gender', $gender, PDO::PARAM_STR);
        $q->bindValue(':opcja', $opcja[0], PDO::PARAM_STR);

		    

        $q->execute();
        Database::disconnect();
        // sprawdzamy czy wywołanie execute() się udało
        $error = $q->errorInfo();
        if ($error[0]) {
            var_dump($error);
        }        
    
    } else {
      
    }
?>

I wyskakuja mi takie bledy:


Notice: Undefined offset: 0 in C:\xampp\htdocs\tester\formularz.php on line 21
array(3) { [0]=> string(5) "23000" [1]=> int(1048) [2]=> string(29) "Column 'opcje' cannot be null" }

Podobne pytania

0 głosów
1 odpowiedź 210 wizyt
0 głosów
1 odpowiedź 389 wizyt
0 głosów
1 odpowiedź 143 wizyt
pytanie zadane 16 kwietnia 2023 w Java przez mm Użytkownik (890 p.)

92,556 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...