• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
2,526 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ź 615 wizyt
pytanie zadane 23 września 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)
0 głosów
2 odpowiedzi 1,574 wizyt
pytanie zadane 26 marca 2017 w PHP przez sobi94 Początkujący (270 p.)
0 głosów
1 odpowiedź 8,970 wizyt
pytanie zadane 1 lutego 2017 w HTML i CSS przez Max Vanach Nowicjusz (150 p.)

93,190 zapytań

142,205 odpowiedzi

322,031 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...