mit $_POST einen code verschicken (PHP/HTML)

kuki15

Newbie
Registriert
Feb. 2011
Beiträge
5
Hey Leute,
Ich habe ein Problem u. komme grad garnet weiter.

Ich schreibe ein php/html script:
In meiner $table variable, befindet sich eine html tabelle, nun möchte ich diese html tabelle and die Seite "Evaluation.php" verschicken. Weiß jemand wie das geht?

$table .= '<table align="center" border="1" > ....
<form method="post" action="Evaluation.php">
<input type="hidden" name="string" value= "<?php echo $table> ?>">
</form>

momentan ist es so dass echo $table das echo ausführt u. mit $table auf meiner seite ausgibt

DANKE :)
 
was für nen Sinn soll das denn machen..?
also entweder dein Gedankengang ist arg komisch und fehleranfällig oder deine Erklärung dessen, was du erreichen willst, ist einfach unverständlich für mich^^
 
Wieso schickst du nicht nur die Daten an evalutation.php und setzt dort die Tabelle zusammen?

Alternativ kannst du solche Dinge sehr gut über Sessions transportieren.

also in der ersten Zeile die Session mit session_start(); initialisieren und dann:

$_SESSION['tabelle']=$table; // Schiebt den Inhalt der Var. "table" in die session

und dann in der evaluation.php kannst du einfach über die sessionvariable

$_SESSION['tabelle'] wieder darauf zugreifen (auch hier wieder session mit session_start() initialisieren).
 
Eben du machst das zu kompliziert.
Übergebe von deiner aktuellen Seite nur die Variablen per GET oder POST

Auf deiner Empfängerseite fragst du dann einfach nur noch ab ob die Variable übergeben wurde.
if (isset ($_POST['string']))
{
$string=$_POST['string'];
echo (" <form method=\"post\" name=\"$string\" action=\"Evaluation.php\">");
}

Mit den \ escapst du die Anführungszeichen damit das echo diese nicht als Ende interpretiert.

Ergebnis:
In deiner Evaluation.php wird das Formular nur ausgegeben wenn die Variable "string" von der ersten Seite übergeben wurde.
 
oder verwende statt " am Anfang und Ende einfach ' dann brauchste die " im Quellcoede nicht escapen!

Ausserdem hat es den Vorteil wenn Du mit ' Arbeitest das das Script schneller läuft da dann PHP nicht in dem " - " Bereich nach PHP Code sucht!
 
Hey,

Danke für eure Antworten. Kann sein dass ich das ganze zu kompliziert mache, ich bin noch Anfängerin in dem Gebiet, also habt bitte etwas Geduld mit mir :)

Was ich versuche zu machen, ist folgendes:

Ich habe eine Website die eine Tabelle anzeigt. Für diese Tabelle möchte so ein "like it!" button wie bei facebook einbauen.
Wenn jetzt jemand auf diesen "like it!" button clickt, möchte ich:
1) in eine Datenbank eintragen dass diese tabelle gemocht wurde.
2) einen neuen Button anzeigen, der "do not like!!" heißt.

Was ich jetzt mache, ist das wenn jemand diesen "like it!" button clickt, das ich eine komplete neue Seite lade mit der tabelle u. den "do not like!" button. Ich wollte deshalb die tabelle zur nächsten Seite "Evaluation.php" weiterschicken.

Ich will ja eigentlich nur, das diese info mit einem click in die datenbank eingetragen wird u. das der button dannach anders aussieht, sonst möchte ich eigentlich garnicht das die website komplete geladen wird.

Hat jemand eine bessere Idee wie man das machen kann? Ich gebe schon zu dass es momentan sehr hässlich ist.

Danke euch :)
 
Dann gib doch jeder Tabelle eine ID und übermittel diese mit deinem Button an die DB.

Wenn in der DB dann die jeweilige ID auftaucht, wurde die Tabelle gewählt -> Button sieht anders aus.
 
Die idee ist ja gut aber wie setze ich das praktisch um?
- Datenbank Eintrag: OnClick kann man ja keine php function aufrufen die etwas in die datenbank einträgt.
- Button: Wie kann man etwas programmieren damit nur der button alleine sich ändert ohne dass die ganze website neu geladen werden muss?
 
kuki15 schrieb:
Die idee ist ja gut aber wie setze ich das praktisch um?
- Datenbank Eintrag: OnClick kann man ja keine php function aufrufen die etwas in die datenbank einträgt.
- Button: Wie kann man etwas programmieren damit nur der button alleine sich ändert ohne dass die ganze website neu geladen werden muss?
Für sowas eigent sich Javascript recht gut... aber als Anfängerin wird das vermutlich zu viel Information auf einmal sein. Falls du dich jedoch darin vertiefen möchtest, würde ich zunächst einmal empfehlen dich ein wenig mit dem DOM (am besten mal in SelfHTML nachschlagen) und nachher mit jQuery (www.jquery.com) auseinanderzusetzen. jQuery ist ein sehr mächtiges Javascriptframework mit AJAX-Funktinalität ... also quasi Seiten dynamisch ändern ohne sie neu laden zu müssen ;)


Woher kommen deine Tabellen? Werden die durch Daten aus der Datenbank generiert oder sind diese statisch?

Ganz einfach wäre einmal, einfach für jede Tabelle iene ide zu übergeben, in der Art:
<input type="hidden" name="tabellenid" value="<?php echo $id; ?>" />

In der evaluation.php übernimmst du diese id und setzt anhand dessen die Tabelle zusammen. Also entweder aus einer Datenbank oder mit einer switch-Abfrage.


Weswegen ich jQuery empfehle:
kuki15 schrieb:
Die idee ist ja gut aber wie setze ich das praktisch um?
- Datenbank Eintrag: OnClick kann man ja keine php function aufrufen die etwas in die datenbank einträgt.
PHP:
<script>
$('#elementid').click(function() {
$.post('zieldatei.php', {*Übergabeparameter im JSON-Format*}, function(data) {
$('#zielbereichid').html(data);
});
});
</script>
Das wäre vermutlich, was du brauchst. jQuery einfach als Link einbinden, und ab gehts.

Zunächst einmal definierst du das Element, auf das man klicken soll und gibst ihm eine ID (id="elementid"). Wenn nun darauf geklickt wird, wird ein AJAX-Request mit der POST-Methode aufgerufen. Dieses ruft dann eine PHP-Datei auf (hier zieldatei.php), welche irgendwas generiert und dann wieder auf der Webseite ausgibt.... in einem bereihc namens "zielbereichid". Dies ist sinnvollerweise ien <div> oder ein <span>.

Ähnlich funktionert auch mit der Frage "nur den Button ändern".
 
klingt fürm ich nach ner Hausaufgabe, aber ok, geht theoretisch auch ohne DB - solange dus nicht für die ewigkeit speichern willst:

PHP:
<?php if(!empty($_POST['liked'] && $_POST['liked']=="1") {
$liked=TRUE; }
else {
$liked = FALSE;
}
?>
<table>
 <!--hier deine Tabelle-->
</table>
<form action="<?php echo $_SERVER['PHP_SELF']; ?> name="likeform" method="post">
<?php
if ($liked) {
?>
<input type="hidden" name="liked" value="0">
<input type="submit" name="Do not like!">
<?php
}
else {
 ?>
<input type="hidden" name="liked" value="1">
<input type="submit" name="Like it!">
 <?php
}
?>
</form>


ps: keien garantie, dass jetzt alles korrekt ist - der db-Editor eignet sich nicht so fürs Programmieren^^
PPS: die schöneren (praxisnäheren) Lösungen wär natürlich - je nach anwendungsgebiet - die Sache mittels Datenbank oder Session
 
Zuletzt bearbeitet:
ihr seid mir Helden ... für sowas simples braucht man doch nicht zwingend eine DB. außerdem vergesst ihr scheinbar, das es nix nützt wenn irgendwas in der DB eingetragen wurde, der User aber beim nächsten mal wiederum den "Like it!" Button anstatt des "Do not Like!" Buttons sieht ... das muß Userbezogen gemacht werden. Entweder setzt man z.B. einen Cookie mit dem entspr. Flag oder aber der User muß sich einloggen, im letztgenannten Fall arbeitet man dann besser mit einer DB. Für den ersten Fall reichen ein paar Zeilen Code ...
 
So könnte man die Anforderung auch verstehen. Dann würde ja eine einfache Session reichen?
Nur der Zweck ist dann Unsinn da nach jedem Besuch die Einstellung wieder auf Standard wäre.

<?
session_start();
$_SESSION['like'] = '1';
if ($_SESSION['like'] == '1'){echo("<img...");} else {echo ("<img...") }
?>
 
Suxxess schrieb:
So könnte man die Anforderung auch verstehen. Dann würde ja eine einfache Session reichen?
Nur der Zweck ist dann Unsinn da nach jedem Besuch die Einstellung wieder auf Standard wäre.

<?
session_start();
$_SESSION['like'] = '1';
if ($_SESSION['like'] == '1'){echo("<img...");} else {echo ("<img...") }
?>

eben, daher kommt eine lösung über sessions eigentlich nicht in frage
 
Zurück
Oben