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 22.03.2010, 16:13  
Benutzer
 
Registriert seit: 04.02.2010
Beiträge: 61
PHP-Kenntnisse:
Anfänger
chuvak befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Ajax und PHP auf selber Seite

Ich habe einen Text und einen Button, der bei Klick einen von PHP generierten Text in eine DIV-Box schreiben soll. Das Ganze befindet sich auf einer Seite und soll mit Ajax realisiert werden:

PHP-Code:
<?php
if(isset($_GET['action']))
{
switch(
$_GET['action'])
{
case 
'ajax':
    echo 
'Hier ist Ajax';
break;
    
default:
          echo 
'fehler';
break;
}
}
?>
Code:
<script type="text/javascript">
function CreateXmlHttpObjet()
{
  var xmlHttpObject = null;

  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttpObject = new XMLHttpRequest();
  }
  catch( e )
  {
    // Internet Explorer
    try
    {
      xmlHttpObject = new ActiveXObject( "Msxml2.XMLHTTP" );
    }
    catch( e )
    {
      xmlHttpObject = new ActiveXObject( "Microsoft.XMLHTTP" );
    }
  }
  
  return xmlHttpObject;
}

function loadContent()
{
	xmlHttpObject = CreateXmlHttpObjet();
    xmlHttpObject.open('get','board1.php?action=ajax', true);
    xmlHttpObject.onreadystatechange = handleContent;
    xmlHttpObject.send(null);
    return false;
}

function handleContent()
{
    if (xmlHttpObject.readyState == 4)
    {
        document.getElementById('inhalt').innerHTML = xmlHttpObject.responseText;
    }
}
</script>

<p>Ich werde nicht neu geladen</p>
<div id="inhalt" style="border: solid;">
    <a href="#" onclick="loadContent()">Klick mich</a>.<br>
	was kommt gleich?
</div>
Der Inhalt der DIV-Box soll überschrieben werden, allerdings bleibt der alte Inhalt drin und es kommt neuer hinzu. Ich habe das Gefühl, als würde die Seite einfach nochmal "reingeladen" werden.


Wenn ich den Inhalt aber aus einer externen Datei reinlade:

PHP-Code:
<?php
if(isset($_GET['param'])){
    
    echo 
$var "externe datei ueber ajax geht!";
}else{
    echo 
"externe datei: param nicht gesetzt";
}
?>
Und die eine Zeile entsprechend anpasse:

Code:
xmlHttpObject.open('get','ajax.php?param=bla');
funktioniert alles einwandfrei.

Sieht jemand den Fehler?

Danke!
chuvak ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.03.2010, 16:17  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Sicher? Dein Code-Schnipsel von der PHP-Seite ist unvollständig fürchte ich. So zumindest macht es nicht das von dir beschriebene.

Bitte installiere dir Firebug im Forefox und schau dir Request/Response deines Ajax-Aufrufes selbst an. Oder im IE8 mittels eingebautem Debugger.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 22.03.2010, 16:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was denn nun? $_GET['param'] oder $_GET['action']?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.03.2010, 16:34  
Benutzer
 
Registriert seit: 04.02.2010
Beiträge: 61
PHP-Kenntnisse:
Anfänger
chuvak befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Sicher? Dein Code-Schnipsel von der PHP-Seite ist unvollständig fürchte ich. So zumindest macht es nicht das von dir beschriebene.
Ich habs grad nochmal getestet, es ist alles, wie von mir beschrieben, sofern ich meine Gedanken richtig fassen konnte...

Zitat:
Was denn nun? $_GET['param'] oder $_GET['action']?
Das sind ja 2 verschiedene Dateien, spielt also in dem Fall keine Rolle.

Um Missverständnisse bezüglich mehrerer Dateien auszuschließen, hier nochmal die beiden Dateien getrennt:

PHP-Code:
<?php
if(isset($_GET['action']))
{
switch(
$_GET['action'])
{
case 
'ajax':
    echo 
'Hier ist Ajax';
break;
    
default:
          echo 
'fehler';
break;
}
}
?> 


<script type="text/javascript">
function CreateXmlHttpObjet()
{
  var xmlHttpObject = null;

  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttpObject = new XMLHttpRequest();
  }
  catch( e )
  {
    // Internet Explorer
    try
    {
      xmlHttpObject = new ActiveXObject( "Msxml2.XMLHTTP" );
    }
    catch( e )
    {
      xmlHttpObject = new ActiveXObject( "Microsoft.XMLHTTP" );
    }
  }
  
  return xmlHttpObject;
}

function loadContent()
{
    xmlHttpObject = CreateXmlHttpObjet();
    xmlHttpObject.open('get','board1.php?action=ajax', true); // Hier wird die selbe Seite nochmal aufgerufen
    //xmlHttpObject.open('get','ajax.php?action=ajax'); // Hier kommt der Inhalt aus einer externen Datei, die ich weiter unten eingefügt habe
    xmlHttpObject.onreadystatechange = handleContent;
    xmlHttpObject.send(null);
    return false;
}

function handleContent()
{
    if (xmlHttpObject.readyState == 4)
    {
        document.getElementById('inhalt').innerHTML = xmlHttpObject.responseText;
    }
}
</script>

<p>Ich werde nicht neu geladen</p>
<div id="inhalt" style="border: solid;">
    <a href="#" onclick="loadContent()">Klick mich</a>.<br>
    was kommt gleich?
</div>
Externe Datei:
Code:
<?php

if(isset($_GET['action'])){
	
	echo "externe datei ueber ajax geht!";
}else{
	echo "externe datei: param nicht gesetzt";
}

?>
chuvak ist offline   Mit Zitat antworten
Alt 22.03.2010, 16:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Alleine schon das Fehlen einer exit; Anweisung dürfte problematisch sein.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.03.2010, 16:51  
Benutzer
 
Registriert seit: 04.02.2010
Beiträge: 61
PHP-Kenntnisse:
Anfänger
chuvak befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Alleine schon das Fehlen einer exit; Anweisung dürfte problematisch sein.
In der ersten oder zweiten Datei? Die zweite (externe) Datei übergibt den Code ja problemlos. Bei der ersten Datei gibt es Probleme.

Ich habe 3 Bilder hochgeladen:
1. Anfang: So wie es am Anfang aussieht
2. Selbe: Das (fehlerhafte) Ergebnis, wenn sich die Datei selbst nochmal lädt
3. Extern: Das (erwünschte) Ergebnis, wenn der Inhalt aus der externen Datei kommt
Miniaturansicht angehängter Grafiken
erledigt-ajax-und-php-auf-selber-seite-anfang.jpg  erledigt-ajax-und-php-auf-selber-seite-selbe.jpg  erledigt-ajax-und-php-auf-selber-seite-extern.jpg  
chuvak ist offline   Mit Zitat antworten
Alt 22.03.2010, 17:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Keine Ahnung, was einem die Bilder sagen sollen. Wo exit; hingehört, bekommst DU mit etwas Nachdenken auch selbst raus..
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.03.2010, 17:31  
Benutzer
 
Registriert seit: 04.02.2010
Beiträge: 61
PHP-Kenntnisse:
Anfänger
chuvak befindet sich auf einem aufstrebenden Ast
Standard

Die Erklärung zu den Bildern hab ich sogar mal mitgepostet.
Es sind einfach die Screenshots der Dateien, um das Problem zu veranschaulichen und damit ihr den Code nicht selber ausführen braucht.
exit(); kann ja nur ans Ende der zweiten Datei gehören, welche aber fehlerfrei funktioniert. Es geht mir eben um die erste Datei.
chuvak ist offline   Mit Zitat antworten
Alt 22.03.2010, 17:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was sollte exit; am Ende einer Datei für einen Sinn haben?!
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.03.2010, 17:58  
Benutzer
 
Registriert seit: 04.02.2010
Beiträge: 61
PHP-Kenntnisse:
Anfänger
chuvak befindet sich auf einem aufstrebenden Ast
Standard

Habs jetzt:
PHP-Code:
if(isset($_GET['action']))
{
$zahl rand(5,100);
switch(
$_GET['action'])
{
case 
'ajax':
    echo 
$zahl;
break;
    
default:
          echo 
"fehler";
break;
}
exit();

Dankeschön!
chuvak 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
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
[Erledigt] Ajax Paginations Problem (Request bei erreich der letzten möglichen Seite kn0wledge JavaScript, Ajax und mehr 4 01.02.2010 16:32
Seite für mobile Handy-Browser anpassen gruber99 PHP-Fortgeschrittene 14 25.01.2010 16:08
Seite übersetzen mit Google Translate (AJAX API) und CURL/PHP on-the-fly rigo PHP-Fortgeschrittene 3 18.10.2009 16:52
Php einsteiger bekommt die Seite einfach nicht online... Ludvigo PHP Tipps 2009 3 26.09.2009 15:12
[Erledigt] Zwei Formulare in einer Seite <?=david?> PHP Tipps 2009 6 21.09.2009 16:31
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
Seite nicht mehr gültig Igäl PHP Tipps 2006 3 25.05.2006 16:08
[Erledigt] Wetten automatisch von anderer Seite beziehen PHP Tipps 2006 11 03.03.2006 09:09
Mit post an weitere Seite oder 2 Seiten übergeben? PHP Tipps 2005 1 02.02.2005 12:16
[Erledigt] php+Seite kann nicht angeziegt werden, Seite existiert aber Server, Hosting und Workstations 2 09.09.2004 08:21
Eine 2te Seite auto matisch in neuem Fenster laden PHP Tipps 2004 4 25.08.2004 14:10
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax auf sich selbst, ajax seite, ajax datan auf selber seite, ajax selbe seite, loadcontent() altes bleibt, ajax open externe php, php ?action=seite ajax, ajax an seite selbst, java script createxmlhttpobjet, inhalt auf selber seite ajax, ajax in php seite, ajax seiten swicth, $_get selbe seite, xmlhttpobject.open php file, php daten auf selbe seite aajax, ajax selber, if (isset($_get[\seite.php\])) {, php action selbe seite, xmlhttpobject, ajax seite läd nicht mehr, wenn style.border

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:25 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