php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.01.2009, 14:26  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard form action in include datei bei ajax

Hi ich brauch mal wieder eure geniale Hilfe,

und zwar hab ich eine main.php mit folgendem inhalt:

PHP-Code:
<table width="1000" border="0" cellspacing="0" cellpadding="0">
  <
tr>
    <
td><table width="1000" border="0" cellspacing="0" cellpadding="0">
      <
tr>
        <
td><a href="#" onClick="javascript:setRequest('content','overview.php')">Overview</a></td>
        <
td><a href="#" onClick="javascript:setRequest('content','challenge.php')">Challenge</a></td>
        <
td><a href="#" onClick="javascript:setRequest('content','player.php')">Player</a></td>
        <
td><a href="#" onClick="javascript:setRequest('content','overview.php')">Browser</a></td>
      </
tr>
    </
table></td>
  </
tr>
  <
tr>
    <
td><div id="content"></div></td>
  </
tr>
</
table
(nicht alles)

durch klicken wird im div container 'content' immer eine andere datei dargestellt.(mit ajax gemacht)

Meine player.php sieht folgendermaßen aus:

PHP-Code:
echo "<form action='player.php' method='Post'><input type='checkbox' name='Login2' value='jojo_dragon' /><br><input type='submit' value='Kick'></form>";

$Login $_POST['Login2'];
$client->query('Kick'$Login); 
Jetzt zum Problem, wenn ich bei action player.php mache, werde ich durch klicken des buttons Kick an die player.php weitergeleitet(es wird also nur die player.php angezeigt, die player.php wird also nicht mehr im div container content angezeigt sondern als einzelne datei.) Wenn ich action weglass funktioniert das mit der method='post' überhaupt nichtmehr.

Jetzt meine Frage wie mach ich das, das ich nach dem klicken des Buttons immer noch die main.php und im div container content den inhalt player.php angezeigt bekomme?

Ich hoffe ich konnte das einigermaßen verständlich erklären

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.01.2009, 14:47  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Hallo,

alle anderen Buttons/Links funktionieren und der Inhalt wird via Ajax geladen und in das Content Div eingebunden?
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 18.01.2009, 16:21  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja funktioniert alles, nur wenn ich halt auf submit klicke, werd ich weitergeleitet zur player.php aber ich will ja das die player.php im div container content angezeigt wird und zwar auch nachdem ich auf submit(Kick) geklickt habe.(davor gehts ja)

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Alt 21.01.2009, 16:34  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich poste nochmal genauer vielleicht kann dann einer helfen.

der ajax code in der .js

PHP-Code:
    var request false;

    
// Request senden
    
function setRequest(id,tester) {
        
// Request erzeugen
        
if (window.XMLHttpRequest) {
            
request = new XMLHttpRequest(); // Mozilla, Safari, Opera

        
} else if (window.ActiveXObject) {
            try {
                
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
            
} catch (e) {
                try {
                    
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
                
} catch (e) {}
            }
        }

        
// überprüfen, ob Request erzeugt wurde
        
if (!request) {
            
alert("Kann keine XMLHTTP-Instanz erzeugen");
            return 
false;
        } else {
            var 
url tester;
            
// Request öffnen
            
request.open('post'urltrue);
            
// Request senden
            
request.send(null);
            
// Request auswerten
            
request.onreadystatechange = function(){ 
            
interpretRequest(id);
            }
        }
    }

    
// Request auswerten
    
function interpretRequest(id) {
        switch (
request.readyState) {
            
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
            
case 4:
                if (
request.status != 200) {
                    
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
                } else {
                    var 
content request.responseText;
                    
// den Inhalt des Requests in das <div> schreiben
                    
document.getElementById(id).innerHTML content;
                }
                break;
            default:
                break;
        }
    } 
dann die main.php

PHP-Code:
<html>
<
head>
<
title>Test || Main</title>
<
link rel="stylesheet" type="text/css" href="styles/main.css">
<
script src="includes/main.js" language="JScript" type="text/javascript"></script>
</head>
<body>
<table width="1000" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><a href="#" onClick="javascript:setRequest('content','overview.php')">Overview</a></td>
        <td><a href="#" onClick="javascript:setRequest('content','challenge.php')">Challenge</a></td>
        <td><a href="#" onClick="javascript:setRequest('content','player.php')">Player</a></td>
        <td><a href="#" onClick="javascript:setRequest('content','overview.php')">Browser</a></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><div id="content"></div></td>
  </tr>
</table>


</body>
</html> 
jetzt wird z.B. die player.php geladen (mit ajax) und wie kann ich dann in der player.php ein formular abschicken? weil das klappt so nicht wie oben die player.php ist.

Danke für Antworten

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Alt 21.01.2009, 20:20  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Jojo_44
und wie kann ich dann in der player.php ein formular abschicken?
Das ist entweder nur falsch formuliert oder Du hast den falschen Gedankengang. Die Ausgabe player.php wird an den Ajax-Handler im Browser geschickt, dieser ruft irgendwann Deinen onreadystatechange-Handler auf und dieser fügt irgendwann den Ausgabetext als HTML in das Dokument ein - im Browser. Und auch nur "aus dem Browser" heraus wird dann ein eventuell nachgeladenes Formular abgeschickt - PHP hat damit nichts mehr zu tun; es sendet nur irgendeine Zeichenkette, die der Browser dann mittels .innerHTML als HTML interpretiert und in das bestehende Dokument einfügt.
Wenn Du das im Firefox testest, installier Dir mal Firebug.
David ist offline   Mit Zitat antworten
Alt 22.01.2009, 15:14  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok danke, jop ist ein bisschen komisch ausgedrückt.

Und wenn ich jetzt ein Formular das in der player.php ist, absenden möchte wie stell ich das dann an?

Hab schon gegoogelt aber bin net so recht fündig geworden.

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Alt 22.01.2009, 15:36  
Erfahrener Benutzer
 
Benutzerbild von Screeze
 
Registriert seit: 04.01.2009
Beiträge: 844
PHP-Kenntnisse:
Fortgeschritten
Screeze wird schon bald berühmt werden
Standard

naja entweder du rufst mit dem submit button des formulars direkt die .php seite auf (bei <form action=deinedatei.php> den pfad einfügen, und einen submit button einbauen in den form bereich)
oder du willst die seite nicht komplett neu aufrufen, und schreibst eine Javascript funktion, die über ajax dann per post deine formulardaten an die php schickt, und je nach rückgabewert dann die seite weiterbearbeitet.
Screeze ist offline   Mit Zitat antworten
Alt 22.01.2009, 20:10  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ah danke, hab jetzt die ajax funktion erweitert so das das was ich mit dem formular abschick per request.send(das was gesendet werden soll) an die php gesendet wird.

Jetzt hab ich nur noch ein Syntax Problem und zwar wie soll ich in der php die javascript funktion aufrufen?

PHP-Code:
....
echo 
"<input type='Button' value='Kick' onClick='javascript:setRequest('content','player.php','das wird gesendet')'> ";
.... 
so funktioniert es logischerweise nicht, aber wie dann?

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Alt 23.01.2009, 19:55  
Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 97
PHP-Kenntnisse:
Anfänger
Jojo_44 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Eigentlich hab ich ja gedacht, das die Frage ziemlich einfach ist, aber anscheihnend doch nicht, deswegn poste ich nochmal alles.

jetzt der ajax code in der .js

PHP-Code:
var request false;

    
// Request senden
    
function setRequest(id,tester,nachricht) {
        
// Request erzeugen
        
if (window.XMLHttpRequest) {
            
request = new XMLHttpRequest(); // Mozilla, Safari, Opera

        
} else if (window.ActiveXObject) {
            try {
                
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
            
} catch (e) {
                try {
                    
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
                
} catch (e) {}
            }
        }

        
// überprüfen, ob Request erzeugt wurde
        
if (!request) {
            
alert("Kann keine XMLHTTP-Instanz erzeugen");
            return 
false;
        } else {
            var 
url tester;
            
// Request öffnen
            
request.open('post'urltrue);
            
// Request senden
            
request.send('name='+nachricht);
            
// Request auswerten
            
request.onreadystatechange = function(){ 
            
interpretRequest(id);
            }
        }
    }

    
// Request auswerten
    
function interpretRequest(id) {
        switch (
request.readyState) {
            
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
            
case 4:
                if (
request.status != 200) {
                    
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
                } else {
                    var 
content request.responseText;
                    
// den Inhalt des Requests in das <div> schreiben
                    
document.getElementById(id).innerHTML content;
                }
                break;
            default:
                break;
        }
    } 
und die player.php

PHP-Code:
echo "<input type='Button' value='Kick' onClick='javascript:setRequest('content','player.php','du da')'>";


$name34 $_POST['name'];
echo 
$name34
so klappt das nicht, wie muss es den richtig heißen?

Bin dankbar für jeden Hinweis

mfg Jojo
Jojo_44 ist offline   Mit Zitat antworten
Alt 24.01.2009, 11:28  
Erfahrener Benutzer
 
Benutzerbild von Screeze
 
Registriert seit: 04.01.2009
Beiträge: 844
PHP-Kenntnisse:
Fortgeschritten
Screeze wird schon bald berühmt werden
Standard

ich versteh dein problem nicht ganz...

seh ich das richtig, du hast die player.php aufgerufen, dort wird ein buttom zum anklicken angezeigt, der wiederum die player.php aufruft und daten überträgt.

was willst du da noch aufrufen?
du musst doch nur die daten die du per Get oder Post überträgst auswerten in der player.php...
Screeze ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formulare funktionieren nicht post kommt nicht an ronaldl PHP Tipps 2008 17 27.12.2008 07:46
Form Action Felder Magroll PHP Tipps 2008 3 01.10.2008 08:51
form action wird vor submit ausgeführt abcluberer PHP Tipps 2008 5 14.05.2008 10:32
AJAX auf entfernte Datei GSJLink HTML, Usability und Barrierefreiheit 5 02.03.2008 11:29
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
[Erledigt] [Variablen] Formulardaten weitergeben OHNE form action! PHP Tipps 2006 4 07.03.2006 13:31
Datei Anhang in Form mailer PHP Tipps 2006 9 19.01.2006 01:46
Include anderer Datei bei Klick PHP Tipps 2006 2 03.01.2006 01:03
php datei ueber form erstellen PHP Tipps 2005-2 6 22.09.2005 11:44
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Seiten "includen" mit Flash Kort HTML, Usability und Barrierefreiheit 10 06.08.2005 22:03
Greenhorn: Reload einer IMG-Datei nach SUBMIT einer Form PHP Tipps 2004 3 20.09.2004 21:19
include ?????? PHP Tipps 2004 3 12.09.2004 16:49
include Problem andrew22 PHP Tipps 2004 26 10.09.2004 16:04
[Erledigt] Include mit relativen Pfaden PHP-Fortgeschrittene 6 07.06.2004 12:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
formulare action mit ajax, form action include, javascript:setrequest, form include, include formular, onclick include wiki page, ajax form action, include php file mit ajax, nach form action php aufruf auf ajax zurück, php datei mit ajax include, php formular include, php form action ajax, form an include php, mehrere links in ajax setrequest einbauen, php form include, php beim klicken include datei, wiki include onclick, javascript setrequest, login formular include, include php datei form action

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum