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

czy mogę dać zmienną w nazwie submita?

VPS Starter Arubacloud
0 głosów
441 wizyt
pytanie zadane 6 marca 2017 w PHP przez koczo21 Początkujący (450 p.)

Hej,

Mam na swojej stronie wywołaną tablicę i w ostatniej kolumnie jest submit do każdego z wierszy. Chciałbym aby wciskając ten przycisk dany wiersz znalazł się w drugiej tabeli. Tak wygląda przycisk:

<form action="" method="post">
		<input type="submit" value="Dodaj do koszyka$a1" name="$a1" />

gdzie $a jest zmienną zawierającą wartość pierwszej kolumny z danego wiersza w tej tabeli. Mam zrobiony warunek na przyciśnięcie tego przycisku:

 if(isset($_POST["$a1"]))	
			{	
			echo "test";
				$rezultat = mysqli_query($polaczenie, "SELECT produkt.idprodukt, album.nazwaalbumu, ksiazka.tytulksiazki, film.tytul, serialsezon.sezon, serial.tytulserial, produkt.cena
				FROM  produkt
				LEFT JOIN album on produkt.idprodukt=album.idprodukt
				LEFT JOIN film on produkt.idprodukt=film.idprodukt
				LEFT JOIN ksiazka on produkt.idprodukt=ksiazka.idprodukt
				LEFT JOIN serialsezon on produkt.idprodukt=serialsezon.produkt
				LEFT JOIN serial on serialsezon.serial=serial.idserial
				WHERE produkt.idprodukt = $a1
				ORDER BY produkt.idprodukt ASC");

 

niestety po wciśnięciu przycisku nie pojawia się nawet "test", więc jakby przycisk nie był wciśnięty wcale. Pierwsze pytanie, czy mogę dać zmienną w "name" dla buttona? Jeśli tak, to macie pomysł w czym leży problem? Siedzę nad tym już ładny kawałek czasu i nic nie mogę wymyślić :(

Poniżej przesyłam cały kod:

?php

	session_start();
	
	if (!isset($_SESSION['zalogowany']))
	{	
		header ('Location: index.php');
		exit();
	}
?>	

<!DOCTYPE HTML>
<html lang ="pl">
<head>
	<meta charset ="utf-8" />
	<title>Sklep internetowy</title>
	<meta name="description" content="Sklep internetowy oferujący media w formacie cyfrowym" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
</head>
    
<body bgcolor="gray">
<style>
 .prawa
	{
		float: right; 
		display:inline;
	}
 .lewa	
	{
		float: left; 
		display:inline;	
	}
 </style>
 
<?php
	echo '<span class="lewa"><font size="5">Witaj <span style="color:blue">'.$_SESSION['imie'].'</span>! Zapoznaj się z naszą aktualną ofertą.</span>';
	echo '<span class="prawa"></font><p align="right"><a href ="logout.php">Wyloguj się</a></span>';
?> 
    
<form action="editpasswordclient.php" method="post">
		<input type="submit" value="Zmień swoje hasło" />
</form>	
<form action="editclient.php" method="post">
		<input type="submit" value="Zmień swoje dane" />
</form>	
<br />

<br />
<center><font size="6">Oferta sklepu:</font></center>
<table width="1000" align="center" border="1" bordercolor="#d5d5d5"  cellpadding="0" cellspacing="0">
        <tr>
        <?php
            ini_set("display_errors", 0);
            require_once "connect.php";
            $polaczenie = mysqli_connect($host, $db_user, $db_password);
			mysqli_query($polaczenie, "SET CHARSET utf8");
			mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
            mysqli_select_db($polaczenie, $db_name);
            
            
				$rezultat = mysqli_query($polaczenie, "SELECT produkt.idprodukt, album.nazwaalbumu, ksiazka.tytulksiazki, film.tytul, serialsezon.sezon, serial.tytulserial, produkt.cena
				FROM  produkt
				LEFT JOIN album on produkt.idprodukt=album.idprodukt
				LEFT JOIN film on produkt.idprodukt=film.idprodukt
				LEFT JOIN ksiazka on produkt.idprodukt=ksiazka.idprodukt
				LEFT JOIN serialsezon on produkt.idprodukt=serialsezon.produkt
				LEFT JOIN serial on serialsezon.serial=serial.idserial
				ORDER BY produkt.idprodukt ASC");
            $ile = mysqli_num_rows($rezultat);
            
			
           
			
if ($ile>=1) 
{
echo<<<END
<td width="50" align="center" bgcolor="e5e5e5">numer produktu</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł albumu	</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł książki</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł filmu</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł serialu</td>
<td width="100" align="center" bgcolor="e5e5e5">sezon</td>
<td width="50" align="center" bgcolor="e5e5e5">cena</td>
<td width="50" align="center" bgcolor="e5e5e5">dodaj do koszyka</td>

</tr><tr>
END;
}

	for ($i = 1; $i <= $ile; $i++) 
	{
		
		$row = mysqli_fetch_assoc($rezultat);
		$a1 = $row['idprodukt'];
		$a2 = $row['nazwaalbumu'];
		$a3 = $row['tytulksiazki'];
		$a4 = $row['tytul'];
		$a5 = $row['tytulserial'];
		$a6 = $row['sezon'];
		$a7 = $row['cena'];
			
		
echo<<<END
<td width="50" align="center">$a1</td>
<td width="100" align="center">$a2</td>
<td width="100" align="center">$a3</td>
<td width="100" align="center">$a4</td>
<td width="100" align="center">$a5</td>
<td width="100" align="center">$a6</td>
<td width="50" align="center">$a7</td>
<td width="50" align="center"><form action="" method="post">
		<input type="submit" value="Dodaj do koszyka$a1" name="$a1" />
</form>	</td>
</tr><tr>
END;
			
	}


?>

<center><font size="6">Twój koszyk:</font></center>
<table width="1000" align="center" border="1" bordercolor="#d5d5d5"  cellpadding="0" cellspacing="0">
        <tr>
        <?php
            ini_set("display_errors", 0);
            require_once "connect.php";
            $polaczenie = mysqli_connect($host, $db_user, $db_password);
			mysqli_query($polaczenie, "SET CHARSET utf8");
			mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
            mysqli_select_db($polaczenie, $db_name);
			
						
			
            if(isset($_POST["$a1"]))	
			{	
			echo "test";
				$rezultat = mysqli_query($polaczenie, "SELECT produkt.idprodukt, album.nazwaalbumu, ksiazka.tytulksiazki, film.tytul, serialsezon.sezon, serial.tytulserial, produkt.cena
				FROM  produkt
				LEFT JOIN album on produkt.idprodukt=album.idprodukt
				LEFT JOIN film on produkt.idprodukt=film.idprodukt
				LEFT JOIN ksiazka on produkt.idprodukt=ksiazka.idprodukt
				LEFT JOIN serialsezon on produkt.idprodukt=serialsezon.produkt
				LEFT JOIN serial on serialsezon.serial=serial.idserial
				WHERE produkt.idprodukt = $a1
				ORDER BY produkt.idprodukt ASC");
            $ile = mysqli_num_rows($rezultat);
            
			
           
			
if ($ile>=1) 
{
echo<<<END
<td width="50" align="center" bgcolor="e5e5e5">numer produktu</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł albumu	</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł książki</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł filmu</td>
<td width="100" align="center" bgcolor="e5e5e5">tytuł serialu</td>
<td width="100" align="center" bgcolor="e5e5e5">sezon</td>
<td width="50" align="center" bgcolor="e5e5e5">cena</td>

</tr><tr>
END;
}

	for ($i = 1; $i <= $ile; $i++) 
	{
		
		$row = mysqli_fetch_assoc($rezultat);
		$a1 = $row['idprodukt'];
		$a2 = $row['nazwaalbumu'];
		$a3 = $row['tytulksiazki'];
		$a4 = $row['tytul'];
		$a5 = $row['tytulserial'];
		$a6 = $row['sezon'];
		$a7 = $row['cena'];
			
		
echo<<<END
<td width="50" align="center">$a1</td>
<td width="100" align="center">$a2</td>
<td width="100" align="center">$a3</td>
<td width="100" align="center">$a4</td>
<td width="100" align="center">$a5</td>
<td width="100" align="center">$a6</td>
<td width="50" align="center">$a7</td>

</form>	</td>
</tr><tr>
END;
			
	}
			}


?>


</body>
</html>

Sory, za mój amatorski język, ale jestem początkujący, Mam nadzieję, że wszystko jest zrozumiałe :)

 

1 odpowiedź

0 głosów
odpowiedź 6 marca 2017 przez niezalogowany
Przy tak nie czytelnym kodzie, znalezienie błędu może być ciężkie, a ja nawet nie będę tego próbował, za późno już :) Spróbuj(taka rada możesz ją wyrzucić do kosza) ale uważam że będzie skuteczna. Podziel kod na podstrony, dzięki temu szybko znajdziesz błąd, kod będzie czytelniejszy i lepiej ci się będzie pisało. Ale co ja tam wiem :D
komentarz 6 marca 2017 przez niezalogowany
Ps. dublujesz połączenie z bazą(tak mi się wydaje), i wystarczyło by przenieść to do osobnego pliku, dużo kodu znika, mniejsza szansa na dublowanie(chyba że jest "konieczne" ale jak byś przeniósł nie była) także dziwne że przy podwójnym require_once nie wywala Ci błędu
komentarz 6 marca 2017 przez niezalogowany
Pierwsze pytanie, czy mogę dać zmienną w "name" dla buttona?

jak chcesz dać jakoś zmienną to na przykład tak

<input type="submit" value="Dodaj do koszyka$a1" name="$a1" > ~to nie zadziała

<input type="submit" value="<?php echo 'Dodaj do koszyka'.$a1; ?>" name="<?php echo $a1; ?>" />
komentarz 6 marca 2017 przez niezalogowany
W sumie dałem ci chyba odpowiedz xd A chciałem cię tylko zachęcić do podziału kodu na podstrony, sprawdź czy zadziała i daj znać :)

Podobne pytania

0 głosów
2 odpowiedzi 203 wizyt
0 głosów
1 odpowiedź 382 wizyt
0 głosów
1 odpowiedź 178 wizyt
pytanie zadane 29 marca 2020 w PHP przez zOne Początkujący (270 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...