zawartość php niewidoczna dla dalszej części zawartości

0

Witam

Czy ktoś jest mi w stanie podpowiedzieć, o co uprzejmie proszę, dlaczego jeśli kreślę w php tabelę i w kodzie wywołuję funkcję php tym się zajmującą, a następnie w kodzie html zaraz za tym daję jakiś tam tekst to ten tekst i wszystko co za jest mimo wszystko przed tym na stronie.
Dodam tylko że problem nie jest związany z elementami pływającymi ani z typem wyświetlania display: flex. To już sprawdziłem.

Jak obejść taki problem? Czy potyrzebny jest kod czy ktoś od razu mi podpowie?

0

Nie ma problemu. Przykład:

Plik functions.php:

<?php

// funkcja generująca dane znajdujące się w koszyku
function generate_cart()
{
	echo "   
		<form action = '' method = 'post'>
			<table border='solid 1px white'>
				<caption>
					Koszyk
				</caption>
				<th width='10vw'>
					Nr.
				</th>
				<th width='30vw'>
					produkt
				</th>
				<th width='10vw'>
					Ilosc
				</th>
				<th width='20vw'>
					Jednostka
				</th>
				<th width='10vw'>
					Dodaj/Usuń
				</th>
				<th width='10vw'>
					Foto
				</th>		
	";
	echo "</form>";
}

// funkcja obsługująca dane przychodzące metodą POST
function serve_post()
{	
	// dodanie produktu z poziomu stron zakupowych
    if(isset($_POST['cargo']))
    {
        $cargo = $_POST['cargo'];
        if(!isset($_SESSION[$cargo])) $_SESSION[$cargo] = 1;
        else $_SESSION[$cargo]++;

    }
	
	// odjęcie produktu znajdującego się w koszyku (dostępne jedynie z poziomu koszyka)
    if(isset($_POST['cargo-']))
    {
        $cargo = $_POST['cargo-'];
        if($_SESSION[$cargo]==1) unset($_SESSION[$cargo]);
        else $_SESSION[$cargo]--;
        header("Location: cart.html");
    }
	
	// dodanie produktu znajdującego się już obecnie w koszyku (dostępne jedynie z poziomu koszyka)
	// w zasadzie to funkcja isset zawsze daje wartość pozytywną,
	// chyba że daną "cargo+" przesłalibyśmy ze stron zakupowych,
    // pod jednoczesnym warunkiem że produktu nie ma jeszcze w koszyku
	if(isset($_POST['cargo+']))
    {
        $cargo = $_POST['cargo+'];
		if(!isset($_SESSION[$cargo])) $_SESSION[$cargo] = 1;
        else $_SESSION[$cargo]++;
        header("Location: cart.html");
    }
}
?>

Plik index. html:


<?php
	// uruchomienie sesji i inicjalizacja funkcji
	session_start();
	require_once('functions.php');
 
	// wywołanie funkcji obsługującej dane nadesłane metodą POST 
	if(!empty($_POST))
	{
		serve_post();
	}
?>


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" >
		<meta name="keywords" content="Nazwa firmy">
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
		<title>
			Теплый дом
		</title>
		<link rel="stylesheet" href="header.css?121622" media="all">
		<link rel="stylesheet" href="footer.css?111622" media="all">
	</head>

	<body>
	
		<div id="head">
			<div id="head_logo">
				<a class="hlogo" href="index.html">
					<img src="img/logo.png" style="width:75%; height: 100%;" href="index.html">
				</a>
			</div>
			<a class="head_text" href="index.html">
				<i>
					Nazwa firmy
				</i>
			</a>
			<div id="head_menu">
				<a href="home.html" class="menu_button">O nas</a>
				<a href="contact.html" class="menu_button">Kontakt</a>
			</div>
			<div id="head_phones">
				<img src="img/phone_white.png" style="width: 3vw; height: 3vw;">
				<a class="headphones" href="tel:+0000000000">
					&nbsp;&nbsp;0000000000
				</a>
			</div>
			<a id = "head_cart" href = "cart.html">
				<img src="img/shopping_cart.png" style="width:75%; height: 75%;">
			</a>
		</div>
  
		<?php
			echo "Test.";
		?>
  
		<?php
			generate_cart();
		?>

		<div id="footer">
			<div id="footer_logo">
			</div>
			<div id="footer_text">
				<i>
					Jakiś tekst stopki.
				</i>
			</div>
		</div>
    </body>
</html>

Plik header.css (zawierający style nagłówka):

#head { 
	width : 100vw;
	background: url("img/header.jpeg");
	background-size: cover;
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1;
	height: 6vw;
	color: white;
}

#head_logo {
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4.5vw;
	height: 3vw;
	position: relative;
	top: 1.5vw;
	left: 0.5vw;

}

#hlogo { }

a.head_text {
	height: 100%;
	font-family: Arial;
	float: left;
	display: flex;
	align-items: center;
	justify-content: left;
	width: 20vw;
	font-size: 3vw;
	line-height: 3vw;
	text-decoration: none;
	color: white;
}

#head_menu {
	float: left;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	width: 34vw;
}

a.menu_button {	
	text-decoration: none;
	text-align: center;
	color: white;
	width: 45%;
	display: inline-block;
	font-family: Arial;
	font-weight: normal;
	margin-left: 0.5%;
	font-size: 2.5vw;
	line-height: 2.5vw;
	height: 50%;
	text-align: center;
	line-height: 3vw;
}

a.menu_button:hover{
	position: relative;
	background-color: rgba(128,128,0,0.6);
	color: #ffffff;
}

a.menu_button_choosen {	
	text-decoration: none;
	text-align: center;
	color: #808000;
	width: 45%;
	display: inline-block;
	font-family: Arial;
	font-weight: normal;
	margin-left: 0.5%;
	font-size: 2.5vw;
	line-height: 3.5vw;
	height: 50%;
	text-align: center;
	margin-top: 0;
}

a.menu_button_choosen:hover{
	position: relative;
	background-color: rgba(128,128,0,0.6);
	color: #808000;
}


#head_cart {
	float: right;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6vw;
	height: 6vw;
}


#head_cart_choosen {
	float: right;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6vw;
	height: 6vw;
}

#head_cart:hover {
	position: relative;
	animation-name: animation_cart;
    animation-duration: 0.1s;
	animation-iteration-count: infinite;
}

@keyframes animation_cart {
  0% { left: 0px; }
  50% { left: 2px; }
  100% { left: 0px;}
}

a.headphones {
	color: white;
	font-size: 3.5vw;
	line-height: 5vw;
}

a.headphones:link {
	color: white;
	text-decoration: none;
}
a.headphones:hover {
	color: rgba(0,255,127,1);
	text-decoration: none;
}

#head_phones {
	float: right;
	width: 35vw;
	height: 100%;

	display: flex;
	align-items: center;
	justify-content: center;
}

I ostatni styl stopki w pliku footer.css:

#footer { 
	width : 100vw;
	background-color: black;
	height: 3.5vw;
}

#footer_logo {
	width: 3.5vw;
	height: 100%;
	background: url("img/logo.png");
	background-size: cover;
	float: left;
}

#footer_text {
	float: right;
	
	text-align: left; 
	color: white; 
	font-size: 2vw; 
	font-family: Arial;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	width: 96.5vw;
}

Co do mojego poprzedniego pytania, to najlepsze w tym jest to że napis Test , także generowany echem przez php znajduje się w miejscu pomiędzy nagłówkiem i stopką, tak jak jest w kodzie, ale już podczas wywołania funkcji generate_cart() wszystko idzie na koniec.
Dlaczego tak jest Panowie, help me.

Dodam tylko że istnieje możliwość odpalania kodu php znajdujących się w plikach html - można to osiągnąć poprzez wpis w pliku .htaccess na serwerze:
AddHandler application/x-httpd-php .html

3

Tabela nie jest zamknięta.

0

Zauważyłem to dosłownie przed chwilą, zanim przeczytałem Twój post. Dziękuję mimo wszystko za zainteresowanie i przepraszam za niedopatrzenie. Temat zamykam.

0

Jeszcze jedno pytanie.
Mam kod związany z wysyłaniem danych z formularza metodą post. Wszystko działa jak należy ale za każdym razem jak klikam przycisk wysyłania danych to dane wysyłają mi się metodą POST jednakże przycisk jest umieszczony na stronie na dole i aby do niego dojechać trzeba przeskrolować na sam dół stronę i
problem w tym że po kliknięciu i wysłaniu nawigacja wraca mi do początku strony zamiast zostawać w miejscu z którego kliknąłem.
Czyli zachowuje się to wszystko dokładnie tak jak gdyby strona została przeładowana a ja bym chciał uzyskać taki efekt żeby nie ruszało nawigacji w sensie bieżącej pozycji przeglądania strony przez użytkownika. Da się to jakoś prosto osiągnąć?

1

Stwórz sobie kotwicę w tekście i wpisz ją a action formularza.
https://pomoc.home.pl/baza-wiedzy/kotwice-wewnetrzne-i-zewnetrzne-odsylacze-na-stronie-www

1 użytkowników online, w tym zalogowanych: 0, gości: 1