Aktualizacja tablicy po wciśnięciu przycisku.

0

Witam Serdecznie.
W związku z tym że moja znajomość php nie jest jakaś porażająca i dopiero się go uczę, chciałbym Was prosić o pomoc. Stworzyłem skrypt który poprzez okno dialogowe wczytuje mi plik z danymi i tworzy z niego dwuwymiarową tablicę którą następnie wyświetla w textarea. No i super, to działa. Teraz kolejnym krokiem jaki chcę zrobić to aktualizacja tej tablicy o dodatkową kolumnę powstałą z odjęcia od siebie danych które są datą, pomnożenia tego przez 2 i podzielenia przez wynik mnożenia liczby z 4 kolumny i- tego wiersza. No i oczywiście to też działa ale teraz próbuję zrobić tak, aby ta aktualizacja następowała po wciśnięciu przycisku "Oblicz". Niestety efekt obecnie mam taki że po wciśnięciu oblicz, textarea zostaje z czyszczona. I tu moja prośba do Was o pomoc. Z góry dziękuję. Poniżej wklejam skrypt.

Ps. To co robię wykonuję dla siebie, na swój własny prywatny użytek, ucząc się jednocześnie. Piszę to żeby ktoś nie pomyślał że robię to zarobkowo czy coś bo jak mówię PHP dopiero poznaję i nigdy nie podjął bym się robienia dla kogoś czegoś, czego nie znam. Mam nadzieję że pomożecie trochę bo obawiam się że nieźle tam na modziłem w tym skrypcie.

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<head>
	<link rel="stylesheet" type="text/css" href="template.css" />
	<title>Tytuł</title>
</head>

<body>
	<br><img src = "indeks.jpg"/>
	<center>Tytuł</center><Br>
	<div>
		<form enctype="multipart/form-data" action="index2.php" method="POST">
		<!--<input type="hidden" name="MAX_FILE_SIZE" value="900000000000000000000000" />-->
		<input name="plik" type="file" />
		<input type="submit" value="Wyślij plik" />
		</form>
	</div> 
	<div>
	<form action="index2.php" method="GET">
	<input type="hidden" name="oblicz" value="run">
	<input type="submit" value="Oblicz" />
	</form>
	</div>
	

<?php
$tablica = array();
	if($_FILES){
		$plik_tmp = $_FILES['plik']['tmp_name'];
		$plik_nazwa = $_FILES['plik']['name'];
		$plik_rozmiar = $_FILES['plik']['size'];
		
			if(is_uploaded_file($plik_tmp)) {
				move_uploaded_file($plik_tmp, "upload/".$plik_nazwa);
			}
?>
	<form>   
		<textarea wrap="off" name="txt" disabled="enabled" rows="12" cols="100" style id="lista">
<?php 
			$nazwaPliku = "upload/".$plik_nazwa;
			
			$i = 0;
			if (is_file($nazwaPliku)) {
				$plik = fopen($nazwaPliku, "r");
					while(!feof($plik)) {
						$linia = fgets($plik, 1024);
						$tablica[$i] = $linia;
						$i++;
					}
				fclose($plik);
				foreach($tablica as $wartosc) {
					print("$wartosc");
				}
			}	
}
else {
echo 'Brak pliku';
}			
?>

<?php

if (isset($_GET['oblicz'])) {
	foreach ($tablica as $key => $row) {
		$x = strtotime($row[2].' GMT')-strtotime($row[1].' GMT')/86400;
		$y = $x*2;
		$z = $row[3] / $y;
		$row['z'] = $z;
		$data[$key] = $row;
		print_r($tablica);
	}
}
?>
</textarea><br><br><br>

</form>

 
</form>
</body>
</html>

Dokładnie chodzi mi o to aby po wciśnięciu tego przycisku:

        <div>
	<form action="index2.php" method="GET">
	<input type="hidden" name="oblicz" value="run">
	<input type="submit" value="Oblicz" />
	</form>
	</div>

uruchomił mi się dokładnie ten skrypt:

 
<?php

if (isset($_GET['oblicz'])) {
	foreach ($tablica as $key => $row) {
		$x = strtotime($row[2].' GMT')-strtotime($row[1].' GMT')/86400;
		$y = $x*2;
		$z = $row[3] / $y;
		$row['z'] = $z;
		$data[$key] = $row;
		print_r($tablica);
	}
}
?>

Który wykona odpowiednie operacje na wcześniej dodanej tablicy i ją wydrukuje dodając do niego jedną kolumnę $z. Chcę zrobić taki kalkulator który pobierze mi dane z pliku txt, wrzuci je do tablicy (to już mi działa) przeliczy ją i wydrukuje ponownie tablicę z dodatkową kolumną powstałą właśnie z tego przeliczenia. Później chcę zrobić zapis całości do pliku ale to już robiłem i z tym sobie poradzę :)

0

Zanim użyjesz tablicy $tablica musisz ją wczytać

if (isset($_GET['oblicz'])) {
    foreach ($tablica as $key => $row) {
        $x = strtotime($row[2].' GMT')-strtotime($row[1].' GMT')/86400;
        $y = $x*2;
        $z = $row[3] / $y;
        $row['z'] = $z;
        $data[$key] = $row;
        print_r($tablica);
    }
}

Dodaj przed foreach:

if (is_file($nazwaPliku)) {
                $plik = fopen($nazwaPliku, "r");
                    while(!feof($plik)) {
                        $linia = fgets($plik, 1024);
                        $tablica[$i] = $linia;
                        $i++;
                    }
                fclose($plik);
}

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