PHP Datenübergeben

ich99

Cadet 1st Year
Registriert
Mai 2011
Beiträge
10
ja hallo erstmal ich möchte gern eine variable aus einem formular in eine andere datei übergeben doch leider funktioniert das überhaupt nicht.

hier ein ausschnitt von datei a
<html>
<head></head>
<body>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
<br /><br />
<select name="tabelle" size="6">
<optgroup label="Personal">
<option label ="angestellte">angestellte </option>
</optgroup>

<optgroup label="Waren">
<option label ="Obst">obst </option>
</optgroup>

</select>
<?PHP
$tabelle = ($_POST['tabelle']); // Diesen wert möchte ich gern übergeben er soll
// dann entweder angestellte oder obst enthalten

echo $tabelle; //klappt auch hier steht dann immer angestellte oder obst

?>
<br />

<input type="submit" name="submitted" value="Absenden" />
</form>
</body></html>


und hier der passende ausschnitt von datei b die das teil empfangen soll:

<html>
<head></head>
<body>

<?php
echo $_POST["tabelle"]; // es geht einfach nicht!?!, wieso hab schon verschiedenste
//varianten probiert
?>

</body></html>
 
Wenn ichs richtig lese, dann übergibst du die Daten aus der Tabelle nur an die Datei a. Also an sich selbst. Siehe dein action-Attribut im Form-Tag.

Wenn du willst, dass Datei b, die Daten aus dem Formular erhält musst du im action-Attribut auch Datei b als Ziel angeben.
 
Am Ende mach mal aus dem " ein ' -> echo $_POST['tabelle'];

Micha
 
also statt <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">

mehr sowas wie <form action="< datei b.php>" method="POST">

oder wie jetzt ?
 
[~Micha~] schrieb:
Am Ende mach mal aus dem " ein ' -> echo $_POST['tabelle'];

Micha

Single-Quote oder Double-Quote macht in dem Fall keinen Unterschied

ich99 schrieb:
also statt <form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">

mehr sowas wie <form action="< datei b.php>" method="POST">

oder wie jetzt ?

Eher sowas:

<form action="dateib.php" method="POST">

Wie heißt denn deine Datei genau? Ist nen Leerzeichen im Namen? Wenn ja lösch den lieber raus, ist ne unnötige Fehlerquelle...
 
Datei A

<form method="post" action="b.php">
<input type="hidden" name="tabelle" value="<?=$tabelle;?>">
<input type="submit">
</form>



Datei B

<?
$tabelle = $_POST['tabelle'];
echo $tabelle;
?>

So in der Art.

Micha
 
ne das geht leider nich ich bekomme dann ich dateib immer ne fehlermeldeung
Notice: Undefined index: tabelle in C:\xampp\htdocs\bearbeiten.php on line 7
 
Dann füg mal in deiner Datei b (bearbeiten.php ?) die Zeile

print_r ($_POST);


ein. Dann siehst du, welche (POST-)Werte überhaupt an die Datei übergeben werden.
 
bei print_r ($_POST); erhalte ich dann halt nix also gar nix
Ergänzung ()

kann ich nich einfach mit $_GET variablen übertragen

ps ich werd bekloppt
 
ich99 schrieb:
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
austauschen mit
<form action="/bearbeiten.php" method="POST">

Beide Dateien im selben Verzeichnis, also bei mir funktionierts - eben getestet, selber Inhalt wie von dir hier gepostet, nur die form-action geändert.

POST und GET macht in deinem Fall hier keinen Unterschied, da dadurch lediglich die übergebenen Werte an die URL angehängt werden.
 
Bastel mal in die Datei 2 ein:
PHP:
var_dump($_REQUEST);
und paste den Output hier.
 
<form action="/bearbeiten.php" method="POST"> könnte gehen aber ich will erst noch in der datei ausgegeben haben das ich angestellte oder obst gewählt gabe und nicht sofort nach dem klicken auf den button die datei verlassen das ist halt das problem
 
Der Sinn erschließt sich zwar nicht ganz, warums in der Ausgangsdatei nochmal ausgegeben werden muss, aber so solltes gehen:

Das muss in Datei A:
PHP:
<p>Sie haben <?php echo $_POST['tabelle'];?>gewählt</p>

<form action="/bearbeiten.php" method="POST"> 
<input type="hidden" name="result" value="<?php echo $_POST['tabelle']; ?>" />
<input type="submit" name="submitted" value="Weiter" />
 
</form>

Mit anderen Worten: Dafür brauchst du ein zweites Formular.

Im ersten Formular musst du dann wieder mit php_self arbeiten. (Auch wenn php_self böse ist)
In Datei b musst du dann die ergebnisse mit $_POST['result'] abrufen.


EDIT: Mit GET gehts auch.

PHP:
<a href="/bearbeiten.php?tabelle=<?php echo $_POST['tabelle']; ?>">Weiter</a>
 
Zuletzt bearbeitet:
ich lass mir nach dem klicken von angestellte oder obst ne tabelle mit sql ausgeben. Die tabelle sollte halt noch in datei a angezeigt werden. zusätzlich enthält die tabelle einen "bearbeiten link" für jede zeile und wenn ich dann auf bearbeiten klicke sollen die werte in text felder geladen werden. das klappt auch alles aber ich weiss halt nich wenn ich datei b öffne welche tabelle angeklickt wurde ,deswegen möchte ich dann ne variable übertragen sowas wie 1 oder 0 und dann dann kann man halt sagen 1 steht für angestellte und dementstrechend kann dann alles ausgegeben werden
Ergänzung ()

ich will doch einfach nur ne variable von einer datei in eine andere übergeben XD ohne das ich direckt auf eine andere datei zu wechseln nachdem ich im form teil da auf den sende button kelickt habe
 
Zuletzt bearbeitet:
Zurück
Oben