Variable einer seite auf einer zweiten verwenden
Hi Experten,
ich habe mal wieder ein kleines Problem. Ich habe auf einer Seite mehrere Forms, je nachdem, welcher submitButton geclickt wird, soll sich eine Seite mit angepasstem Inhalt öffnen. Das habe ich auch hinbekommen. Der Wert, der mit dem POST übertragen wird soll dann auf der zweiten Seite mit noch zusätzlichen Daten, welche der Benutzer in ein Formular eingibt in die Datenbank geschriben werden, auch das habe ich hinbekommen. Jedoch baut sich ja nach jedem Click auf dem SubmitButton auf der zweiten Seite die Seite neu auf und somit habe ich meine Variable nicht mehr.
Hier mal die Codes zum besseren Verständnis:
Seite1:
Seite 2:
Ich hatte jetzt die Idee, das man das ja evtl. mit Cookies lösen könnte, oder was meint Ihr? Ich bekomme das nämlich nicht so ganz hin.
Danke mal wieder für die Unterstützung
ich habe mal wieder ein kleines Problem. Ich habe auf einer Seite mehrere Forms, je nachdem, welcher submitButton geclickt wird, soll sich eine Seite mit angepasstem Inhalt öffnen. Das habe ich auch hinbekommen. Der Wert, der mit dem POST übertragen wird soll dann auf der zweiten Seite mit noch zusätzlichen Daten, welche der Benutzer in ein Formular eingibt in die Datenbank geschriben werden, auch das habe ich hinbekommen. Jedoch baut sich ja nach jedem Click auf dem SubmitButton auf der zweiten Seite die Seite neu auf und somit habe ich meine Variable nicht mehr.
Hier mal die Codes zum besseren Verständnis:
Seite1:
<?php
error_reporting(E_ALL);
require_once './Page.php';
/**
*
*/
class index extends Page
{
protected function __construct()
{
parent::__construct();
}
protected function __destruct()
{
parent::__destruct();
}
protected function generateView()
{
$artikel = $this->getViewData();
$this->generatePageHeader('Lagerverwaltung');
$this->generateMenu();
echo <<< showHTML
<h3>Infos</h3>
<!--Im bereich Einstellungen können neue Artikel und neue Lagerorte hinzugefügt und gelöscht werden.-->
<div class="artikelButtons"/>
showHTML;
foreach ($artikel as $key => $value) {
$value = htmlspecialchars($value);
echo <<< showHTML
<!--<button type="button" class="submit submit1" onclick="window.location.href='test.php?artikelName=$value'">$value</button>-->
<form action="test.php" method="POST" name="myForm">
<input type="hidden" name="artName" value="$value"/>
<input type="submit" name="submitBtn" class="submit submit2" value="$value"/>
</form>
showHTML;
}
echo <<< showHTML
</div>
showHTML;
$this->generatePageFooter();
}
protected function getViewData()
{
$sql = 'SELECT material FROM material ORDER BY material;';
$recordset = $this->db->query($sql);
if (!$recordset) {
throw new Exception('Fehler bei der Datenbankabfrage', $sql);
}
$artikelArray = array();
$i = 0;
while ($artikel = $recordset->fetch_assoc()) {
$artikelArray[$i] = $artikel['material'];
++$i;
}
$recordset->free();
return $artikelArray;
}
protected function processReceivedData()
{
}
public static function main()
{
try {
$page = new self();
$page->processReceivedData();
$page->generateView();
} catch (Exception $e) {
header('Content-type:text/plain');
echo $e->getMessage();
}
}
}
index::main();
Seite 2:
<?php
error_reporting(E_ALL);
require_once './Page.php';
/**
*
*/
class test extends Page
{
protected function __construct()
{
parent::__construct();
}
protected function __destruct()
{
parent::__destruct();
}
protected function processReceivedData()
{
$artikel = $this->db->real_escape_string($_POST['artikel']);
// if(isset($_POST['menge'])) {
// $menge=$_POST['menge'];
// if(!preg_match('/^[0-9]*$/', $menge)) {
// echo '<script>alert("Es dürfen nur Zahlen verwendet werden");</script>';
// return false;
// }else {
// $menge= $this->db->real_escape_string($_POST['menge']);
// }
// }
if (isset($_POST['speichern'])) {
// echo '<script>alert("Hallo");</script>';
//if (isset($_POST['menge'])) {
$testInt = filter_var($_POST['menge'],FILTER_VALIDATE_INT);
if($testInt === false) {
echo '<script>alert("Das ist kein integer");</script>';
}else{
$menge = $this->db->real_escape_string($_POST['menge']);
}
//}
// if (isset($_POST['datum'])) {
$datum = $this->db->real_escape_string($_POST['datum']);
// }
// if (isset($_POST['Kunde'])) {
$kunde = $this->db->real_escape_string($_POST['kunde']);
// }
// if (isset($_POST['status'])) {
$status = $this->db->real_escape_string($_POST['status']);
// }
$artikel = $this->db->real_escape_string($_POST['artikel']);
$this->storeData($artikel, $menge, $datum, $kunde, $status);
// echo '<script>alert("Test");</script>';
}
}
protected function storeData($artikel, $menge, $datum, $kunde, $status)
{
$sql = "INSERT INTO hasOption(artikel,menge,datum,kunde,status) VALUES('$artikel','$menge','$datum','$kunde','$status');";
mysqli_query($this->db, $sql);
if (!$sql) {
throw new Exception('Es ist ein Fehler aufgetreten', $sql);
}
}
protected function showOptions($artikel)
{
$sql = "SELECT artikel,menge,datum,kunde,status FROM hasOption WHERE artikel = '$artikel' ORDER BY datum;";
$recordset = $this->db->query($sql);
if (!$recordset) {
throw new Exception('Fehler bei der Datenbankabfrage', $sql);
}
echo "<table border='2' cellspacing='2' cellpadding='2' id='stockTable'>";
echo '<tr><th>Artikel</th><th>Menge</th><th>Datum</th><th>Kunde</th><th>Status</th></tr>';
while ($options = $recordset->fetch_assoc()) {
echo '<tr><td>'.htmlspecialchars($options['artikel']).'</td>'
.'<td>'. htmlspecialchars($options['menge']).'</td>'
.'<td>'. htmlspecialchars($options['datum']).'</td>'
.'<td>'. htmlspecialchars($options['kunde']).'</td>'
.'<td>'. htmlspecialchars($options['status']).'</td>'
.'</tr>';
}
echo '</table>';
$recordset->free();
}
protected function generateView()
{
$artikel= $_POST['artName'];
$cookie = $_COOKIE['cookieArtikel'];
//$artikel = $_GET['artikelName'];
//$artikel = htmlspecialchars($artikel);
$artikel=htmlspecialchars($artikel);
$this->getViewData();
$this->generatePageHeader('Lagerverwaltung');
$this->generateMenu();
echo <<< showHTML
<h1>$artikel</h1>
<h2>$cookie</h2>
<huge>Bestand: </huge>
<form method="POST" action="test.php">
<!--Hidden-Field überträgt den Artikelnamen der von index.php übermittelt
wurde in die Datenbank-->
<input type="hidden" name="artikel" value="$artikel"/>
<label class="mobile">
<br/>
<input type="text" size="10" name="menge" placeholder="Menge" id="menge"/>
</label>
<label class="mobile">
<br/>
<input type="text" size="10" name="datum" placeholder="Datum" id="date"/>
</label>
<label class="mobile">
<br/>
<input type ="text" size="10" name="kunde" placeholder="Kunde" id="kunde"/>
</label>
<label class="mobile">
<br/>
<select name="status" size="1" id="status">
<option>Offen</option>
<option>Bestätigt</option>
<option>Bestätigt(mündl.)</option>
</select>
</label>
<input type="submit" name="speichern" class="submit submit1" value="speichern"/>
</form>
showHTML;
$this->showOptions($artikel);
$this->generatePageFooter();
}
protected function getViewData()
{
// $cookie=$_COOKIE["cookieArtikel"];
//
// return $cookie;
}
public static function main()
{
try {
$page = new self();
$page->processReceivedData();
$page->generateView();
} catch (Exception $e) {
header('Content-type:text/plain');
echo $e->getMessage();
}
}
}
test::main();
Ich hatte jetzt die Idee, das man das ja evtl. mit Cookies lösen könnte, oder was meint Ihr? Ich bekomme das nämlich nicht so ganz hin.
Danke mal wieder für die Unterstützung
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 311016
Url: https://administrator.de/contentid/311016
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar