• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Gästebuch PHP Variable übergabe - Wie geht das?

karloo

New member
Hallo, ich habe ein DIV (main) welches mit Inhalt befüllt wird. Was müsste ich ändern, damit ich mein Gästebuch nach dem FORM Absenden das "action=add" ausführt und mir in mein main div lädt?


Also so funktioniert es leider nicht:
action="loadHTML('guestbook.php?action=add')"


Meine Guestbook.php Datei:
PHP:
<?php 

$WhichFile = "gaestebuch.txt";
    readfile($WhichFile);
    
    
if ($action == "add") { 
    if ($name == "" || $mail == "" || $text == "") { 
        echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>"; 
        echo "Klicke auf den Backbutton Deines Browsers"; 
    } else { 
        $eintrag = "E-Mail: $mail<br>Name: $name <br> Dein Statement:$text<br> Deine Webseite$www<br><br>"; 
        $eintrag = str_replace("\r","",str_replace("\n","",nl2br($eintrag))); 

        // **** attentione ****        
        @$MyFile = fopen($WhichFile,"r"); // File lesend öffnen 
        if ($MyFile) {
            while (!feof($MyFile)) { 
                $backup[] = fgets($MyFile, 4096);
            }
        @fclose($MyFile);
        }
        
        $MyFile = fopen($WhichFile,"w"); // File schreibend öffnen 
        if(!($MyFile)) {
            echo "Datei $MyFile konnte nicht zum Schreiben geöffnet werden.";
            exit;
        } 
        fputs($MyFile,$eintrag."\n");
        for ($i=0;$i<sizeof($backup);$i++) {
            fputs($MyFile,$backup[$i]);
        }
        fclose($MyFile); 
        
        
        echo "Danke $namefuer Deinen Eintrag<br><br><br>";         
        readfile($WhichFile);
        
        
    } 
} else { 
    ?> 
  
    <b>Eintragen in mein Gästebuch</b><br> 
    <form method="post" action="loadHTML('guestbook.php?action=add')" > 
    Dein Name: <input type="text" name="name" size="24"><br> 
    E-Mail: <input type="text" name="mail" size="24"><br> 
    Homepage: <input type="text" name="www" size="24"><br> 
    <br> 
    Dein Eintrag:<br> 
    <textarea name="text" cols="35" rows="5"></textarea><br>
    <input type="submit" value="Eintragen"> 
    </form></font> 
    <?php 
} 
?>

Ajax:

Code:
// JavaScript Document
/*<![CDATA[*/
function loadHTML(dateiName) {
var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer 7


if (typeof XMLHttpRequest != 'main') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// Internet Explorer 6 und älter
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
if (xmlHttp) {
xmlHttp.open('GET', dateiName, true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById("main").innerHTML=xmlHttp. responseText;


}
};
xmlHttp.send(null);
} else {
document.getElementById("main").innerHTML="Leider unterstützt Ihr Browser kein Web 2.0. Schade!";
}
}
// -->
/*]]>*/
 
So wird das schonmal nix ^^
Ob man in nem Form bei action ne JS function eintragen darf weiß ich nicht mal .. wär eigentlich praktisch wenn das geht.
Ansonsten kannst du mit AJAX keine Daten übertragen wenn du eine GET verbindung öffnest (außer über die URL natürlich wobei es da mit Gästebuch texten schnell was lang werden kann).

Besorg die lieber Prototype und ließ das Form erstml über JS komplett aus und übergibs dann
PHP:
var werte = new Array();
var form   = document.getElementById('meinForm').elements;
for(var i = 0; i < form.length; i++){
 push(werte, form[i].value);
}
 
Habe das auch noch probiert, leider ohne Erfolg :(

Code:
 <input type="submit" value="Eintragen" onsubmit="loadHTML('guestbook.php?action=add'); return false">

Seite ist hier:
Untitled Document
 
Also dein Aufruf ist falsch:
Code:
loadHTML('guestbook.php?action=add&name=' + this.name.value + '&mail=' + this.mail.value + '&text=' + this.text.value); return false;
Bei mir kommt diese Meldung dann nicht.
 
Zurück
Oben