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

Lista rozwijana korzystająca z bazy danych

Object Storage Arubacloud
0 głosów
2,287 wizyt
pytanie zadane 6 grudnia 2017 w PHP przez Przemko Giszczyński Początkujący (380 p.)
zmienione kategorie 6 grudnia 2017 przez Przemko Giszczyński

Zdaje sobie sprawę, że prawdopodobnie jest to prosta sprawa. Jednakże nie potrafię zrobić listy rozwijanej w dodawaniu klienta. Wygląda to następująco tak:

W miejscach zaznaczonych kółkami mają być listy rozwijane z danymi z bazy danych:

Zastanawia mnie, jak to umieścić w kodzie php. Kod mniej-więcej wygląda tak:

<body>
	<div id="menu">
		<center>
	<ul id="menu-bar">
	 <li><a href="home.php">Strona Główna</a></li>
	 
	 </li>
	 <li><a href="dodaj.php">Dodawanie faktur</a>
	 	<ul>
      	<li><a href="dodaj.php">Dodaj</a></li>
		</ul>
		<li><a href="dodkli.php">Dodaj klienta</a></li>
		<li><a href="lista.php">Lista klientów</a></li>
		<li><a href="edytuj_d.php">Edytuj dane</a></li>
		<li><a href="logout.php">Wyloguj się!</a>
	  <ul>
	   
	   <li><a href="logout.php">Wyloguj!</a></li>
	  </ul>
	 </li>
	</ul>
		</center>
</div>

	<div class="container">

		<h2>Dodaj fakturę</h2>



	<?php

		require_once "connect.php";
		mysqli_report(MYSQLI_REPORT_STRICT);

		if ($_POST['dodaj']=="Dodaj fakturę!")
		{

			$wszystko_ok = 1;
			$tytul = $_POST['tytul'];
			$cena = $_POST['cena'];
			$ilosc = $_POST['ilosc'];
			$klient = $_POST['klient'];

			if ((strlen($tytul) < 3) || (strlen($tytul) > 30))
			{
				$wszystko_ok = 0;
				$_SESSION['e_tytul']="Tytuł może mieć długość od 3 do 30 znaków";
			}
			else
			{
				$tytul_ok = $tytul;
			}

			if($cena > 0)
			{
				if(!$cena_OK = filter_var($cena, FILTER_VALIDATE_FLOAT))
				{
					$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
					$wszystko_ok = 0;
				}
				else
				{
					$cena_OK = sprintf("%.2f", $cena);
					if($cena_OK != $cena)
					{
						$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
						$wszystko_ok = 0;
					}
				}
			}
			else
			{
				$_SESSION['e_cena'] = "Proszę podać cenę w formacie 00.00 !";
				$wszystko_ok = 0;
			}


			if ($wszystko_ok == 1)
			{

				try
				{
				$polaczenie = new mysqli($db_host, $db_user, $db_password, $db_name);
				$polaczenie ->query("SET NAMES 'utf8'");

				if ($polaczenie->connect_errno!=0)
				{
					throw new Exception(mysqli_connect_errno());
				}

				if ($polaczenie->query("INSERT INTO `oferty` (`id`, `tytul`, `ilosc`, `kontrahent`, `cena`, `data_wys`, `id_wys`, `id_kup`) VALUES (NULL, '$tytul_ok', '$ilosc', '$klient', '$cena_OK', CURRENT_TIMESTAMP, '$id', NULL)"))
				{
					$_SESSION['dodano'] = "Dodano fakturę!";
					header('Location: dodaj.php');
					exit();
				}
				else
				{
					echo "Nie udało się dodać";
				}



				}
				catch(Exception $e)
				{
					echo '<span class="error">Błąd serwera! Przepraszamy za niedogodności !</span>';
					echo '<br />Informacja developerska: '.$e;
				}

			}
		}

	?>

	<form class="form-container" method="post" enctype="multipart/form-data">

		<?php
			if (isset($_SESSION['dodano']))
			{
				echo '<div class="error">'.$_SESSION['dodano'].'</div>';
				unset($_SESSION['dodano']);
			}
		?>
<p align="left">
	</p>
		<div class="form-title">Produkt:</div> <br/>
		<input class="form-field" name="tytul" /><br />
		<?php
			if (isset($_SESSION['e_tytul']))
			{
				echo '<div class="error">'.$_SESSION['e_tytul'].'</div>';
				unset($_SESSION['e_tytul']);
			}
		?>

		<div class="form-title">Ilość:</div> <br/>
		<input class="form-field" type="text" name="ilosc" /><br />

		<div class="form-title">Cena:</div> <br />
		<input class="form-field" type="text" name="cena" /><br />
		<?php
			if (isset($_SESSION['e_cena']))
			{
				echo '<div class="error">'.$_SESSION['e_cena'].'</div>';
				unset($_SESSION['e_cena']);
			}
		?>
		
		<div class="form-title">Kontrahent:</div> <br/>
		<input class="form-field" type="text" name="klient" /><br />

		<br />

		<input class="submit-button" type="submit" name="dodaj" value="Dodaj fakturę!"/>

	</form>

 

3 odpowiedzi

0 głosów
odpowiedź 6 grudnia 2017 przez Przemko Giszczyński Początkujący (380 p.)

W miejsce konrahenta udało mi się zrobić coś tego typu, jednakże teraz nie mogę przesłać tego formularza.

Zmiana wygląda tak:

<div class="form-title">Kontrahent:</div> <br/>
		<select class="form-field"
		<?php
 
		require_once "connect.php";
          
		$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
 
		$rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM klient "));
 
		echo '<select name="XXX">'."<br>";
 
 		while($option = mysqli_fetch_assoc($rezultat)) {
 
		echo '<option value='.$option['id'].'>'.$option['nazwa'].'</option>';
		 
		}
 
 
		echo '</select>'."<br>";
 
		echo '</form>';
		?>


		<br />

		<input class="submit-button" type="submit" name="dodaj" value="Dodaj fakturę!"/>

	</form>

Jednak teraz popsułem przesyłanie tego formularza.

0 głosów
odpowiedź 6 grudnia 2017 przez PaulGilbert Gaduła (3,280 p.)
Jestem początkujący, więc nie wiem czy jakoś szczególnie pomogę, ale: rozwijane formularze w których dane mają być wczytywane z bazy wstawiłbym do kodu PHPa a pola na tych rozwijanych listach przypisałbym zmiennym, które by odpowiadały danym pobranym z bazy danych.
0 głosów
odpowiedź 6 grudnia 2017 przez Chess Szeryf (76,710 p.)

Do sprawdzania, czy coś siedzi w zmiennych używaj: print_r(), var_dump(). Dodatkowo, jeśli chcesz mieć sformatowane wyniki, po użyciu owych wspomnianych funkcji, to możesz użyć znacznika HTML: <pre>something_function</pre>.

<form method="post" action="">
	L1: <select name="L1"> 
			<option>1</option>
			<option>2</option>
			<option>3</option>
			<option>4</option>
		</select>
		<input type="submit"/>
</form>

<pre>

<?php

$conn = new mysqli('localhost','root','','zakupy');

$resultat = $conn->query("INSERT INTO `teraz` values ('{$_POST['L1']}');");

$res = $conn->query('select * from `teraz`');
 
while($res2 = $res->fetch_array(MYSQLI_NUM)){ 
	  list($my_detailed_name)=$res2;
	  print_r($my_detailed_name.'<br />');
}

?>

</pre>

 

 

Podobne pytania

0 głosów
1 odpowiedź 575 wizyt
pytanie zadane 23 września 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)
0 głosów
2 odpowiedzi 1,240 wizyt
pytanie zadane 26 marca 2017 w PHP przez sobi94 Początkujący (270 p.)
0 głosów
1 odpowiedź 8,475 wizyt
pytanie zadane 1 lutego 2017 w HTML i CSS przez Max Vanach Nowicjusz (150 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...