php.de

ZurĂŒck   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen fĂŒr Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2012, 17:43  
Neuer Benutzer
 
Registriert seit: 11.02.2012
BeitrÀge: 5
PHP-Kenntnisse:
AnfÀnger
RzudemF befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Include Problem bei dynamisch nachladenen Content via Ajax

Hallo!

Ich zermarter mir nun Ewigkeiten den Kopf und habe mich nun entschlossen mich doch hier anzumelden um die Profis zu fragen was denn da falsch lÀuft...

Die Homepage um die es geht:
www.true-skillz.de

Zu meinem Problem:

Ich habe eine Index.php in der ich per Include den Header aus Wordpress auslese um die Funktionen dort nutzen zu können
PHP-Code:
<?php include_once ("./blog/wp-blog-header.php"); ?>
Dann gebe ich die ersten paar Worte des Artikels aus in das Conten-Div:
PHP-Code:
                    <?php
        
global $myPosts;
        
$myPosts '';
?>
<?php
        $my_query 
= new WP_Query();
        
$my_query->query('cat=1,2,3&showposts=20&orderby=date');
        if (
$my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post();
        
$myPosts .= $post->ID ",";
?>
<br><br>
<div id="content" style="min-height:250px; height:100%;" >
<div style="margin-left:auto; vertical-align:middle; margin-right:auto; width:95%;height:95%;overflow:auto;">
<div class="bild" > <a  href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array( 190,190 ), array( 'class' => 'recent-thumbs' )); ?></a>  </div>
<div style="width:100%;">
<p><div class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></div>
   <span class="Stil12"><?php the_time('j'); ?></span>
                            <span class="Stil12"><?php the_time('M'); ?>
                            <?php the_time('Y'); ?></span></p>
<span class="Stil14" align="justify" ><p><?php add_filter('excerpt_length''new_excerpt_length');
    
the_excerpt();
   
remove_filter('excerpt_length''new_excerpt_length'); ?></span></p>
</div>
</div>
</div>
<?php endwhile; endif; ?>
Soweit funktioniert alles, da ja die Index das erste mal lÀd...

Nun habe ich ein Ajax-Script eingebunden, das mir die Inhalte der Navigation aus externen Dateien in das Content-Div lÀd in dem es den HREF Tag abfÀngt:
Code:
// code direkt nach seitenaufbau starten
$(document).ready(function()
{
   // allen links im div 'navigation' eine click()-funktion zuweisen
   // es wird auch auf alle links von der dynamisch nachgeladenen
   // seiten reagiert (solange die seiten in das content-div geladen werden)!
   $("#slidingMenu a").live("click",function()
   {
        // das link-ziel jeweils auslesen & zwischenspeichern
        var pageToLoad = $(this).attr("href");
        // varaible fĂŒr den neuen inhalt
        var pageContent;

        // die externe seite laden, der inhalt ist dann in 'data'
        $.get(pageToLoad, function(data)
        {
           // den inhalt zwischenspeichern
           pageContent=data;


           // content-div langsam ausblenden
           $("#content").fadeOut("slow", function()
           {
                // wenn das ausblenden fertig ist, inhalt an das content-div ĂŒbergeben
                $("#content").html(pageContent);
                // content-div langsam wieder einblenden lassen
                $("#content").fadeIn("slow");



                // oder in kurzer form (vorzuziehen)
                // $("#content").html(pageContent).fadeIn("slow");
           });
        });

        // wichtig! sonst wird der a-link im browser aufgerufen!
        return false;
});
});
Nun ist mein Problem das ich wenn man auf "Home" rechts in der Navigation klickt nun wieder den Inhalt vom Anfang zurĂŒckladen muss in den Conten-Div. Das habe ich gelöst in dem ich einfach eine PHP-Datei gemacht habe(start.php), in der dann genau das selbe drinne ist wie auf der erstmals geladen Index.
PHP-Code:
<?php

        
global $myPosts;
        
$myPosts1 '';
?>
<?php
        $my_query1 
= new WP_Query();
        
$my_query1->query('cat=1,2,3&showposts=20&orderby=date');
        if (
$my_query1->have_posts()) : while ($my_query1->have_posts()) : $my_query1->the_post();
        
$myPosts1 .= $post->ID ",";
?>

<div style="margin-left:auto; vertical-align:middle; margin-right:auto; width:95%;height:95%;overflow:auto;">
<div class="bild" > <a  href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array( 190,190 ), array( 'class' => 'recent-thumbs' )); ?></a>  </div>
<div style="width:100%;">
<p><div class="title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
   <span class="Stil12"><?php the_time('j'); ?></span>
                            <span class="Stil12"><?php the_time('M'); ?>
                            <?php the_time('Y'); ?></span></p>
<span class="Stil14" align="justify" ><p><?php add_filter('excerpt_length''new_excerpt_length');
    
the_excerpt();
   
remove_filter('excerpt_length''new_excerpt_length'); ?></span></p>
</div>
</div>
<?php endwhile; endif; ?>
<?php end
?>
Ich dachte, da ich ja auf der Index den Header included habe, muss ich dementsprechend den include NICHT in der start.php einfĂŒgen, doch dann finden er den wp-query nicht. FĂŒge ich den include ein, zeigt er mir den Inhalt wenn ich die start.php direkt aufrufe, aber der Link "Home" reagiert nicht. Nehme ich include raus, wechselt das Div den Content gibt aber eben den Fehler aus das er den wp-query nicht findet.

Ich habe auch schon include_once und require_once ausprobiert, nĂŒtzt aber nichts...

Ich hoffe ihr könnt mir weiterhelfen, eventuell hab ich einfach einennen Denkfehler drin.
RzudemF ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code FlĂŒsterer

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

Alt 12.02.2012, 17:40  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
BeitrÀge: 603
PHP-Kenntnisse:
AnfÀnger
dreamcatcher wird schon bald berĂŒhmt werden
Standard

Verwirrend erklÀrt.

1.)

Verstehe ich folgendes richtig:
Es geht nur darum, den gleichen Inhalt zu laden der beim ersten Aufruf der Seite gezeigt wird, wenn man - nachdem man sich etwas durch die Seite geklickt hat - wieder zurĂŒck auf "Home" klickt.

Ist das richtig?

2.)
start.php gibt als Status Code eine 404 Meldung.
(http://img828.imageshack.us/img828/2250/20220571.png)

Um das zu sehen nutze Firebug.

Behebe diesen Fehler und teste es erneut.

GeÀndert von dreamcatcher (12.02.2012 um 17:45 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 12.02.2012, 18:26  
Neuer Benutzer
 
Registriert seit: 11.02.2012
BeitrÀge: 5
PHP-Kenntnisse:
AnfÀnger
RzudemF befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Verwirrend erklÀrt.

1.)

Verstehe ich folgendes richtig:
Es geht nur darum, den gleichen Inhalt zu laden der beim ersten Aufruf der Seite gezeigt wird, wenn man - nachdem man sich etwas durch die Seite geklickt hat - wieder zurĂŒck auf "Home" klickt.

Ist das richtig?

2.)
start.php gibt als Status Code eine 404 Meldung.
(http://img828.imageshack.us/img828/2250/20220571.png)

Um das zu sehen nutze Firebug.

Behebe diesen Fehler und teste es erneut.
Hallo .

Entschuldigung wenn die ErklÀrung etwas verwirrend ist. Ja es geht genau um das was du in Punkt 1 beschrieben hast.

Zu Punkt 2:
Die Seite ist definitiv Online. Man kann sie ja auch direkt aufrufen in der Adresszeile und ich habe den Link nicht anders gesetzt als die anderen.

Wie gesagt wenn ich den Include des Headers in der start.php weg lasse, funktioniert der Link

Danke fĂŒr deine Hilfe

GrĂŒĂŸe
RzudemF ist offline   Mit Zitat antworten
Alt 12.02.2012, 18:50  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
BeitrÀge: 603
PHP-Kenntnisse:
AnfÀnger
dreamcatcher wird schon bald berĂŒhmt werden
Standard

Lade dir Firebug.

Die Antwort/der Content von start.php wird ausgeliefert, darum geht es nicht.
Es geht darum, dass du einen 404 Status-Code bekommst, obwohl die Seite vorhanden ist.

Vermutung:
Daher wird die Response nicht in dein Quelltext geladen, da vorher ĂŒberprĂŒft wird, ob der Statuscode == "200" (OK) o.Ä. ist.

Daher:
Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Behebe diesen Fehler und teste es erneut.
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 12.02.2012, 19:04  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
BeitrÀge: 603
PHP-Kenntnisse:
AnfÀnger
dreamcatcher wird schon bald berĂŒhmt werden
Standard

Alternative
Versuch den Content der start.php wie folgt in das Div-Element zu bekomen:

PHP-Code:
$.post('URL ZU START.php', function(data) {
  $(
'.DEINDIVELEMENTENCLASSNAME').html(data);
}); 
Gibts immer noch einen 404er?
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 12.02.2012, 20:23  
Neuer Benutzer
 
Registriert seit: 11.02.2012
BeitrÀge: 5
PHP-Kenntnisse:
AnfÀnger
RzudemF befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Alternative
Versuch den Content der start.php wie folgt in das Div-Element zu bekomen:

PHP-Code:
$.post('URL ZU START.php', function(data) {
  $(
'.DEINDIVELEMENTENCLASSNAME').html(data);
}); 
Gibts immer noch einen 404er?
Hi,
klingt bestimmt dumm aber wo soll ich das einfĂŒgen? in die index.php oder in die start ? Ich hab noch nicht so viel VerstĂ€ndniss, sorry, aber ich bin lernbereit!

Danke noch mal fĂŒr deine Hilfe!!! Ich weiß es zu schĂ€tzen. Ich glaube mein Kopf ist einfach zu momentan hehe

GrĂŒĂŸe und nen guten Start in die Woche

Gruß
RzudemF ist offline   Mit Zitat antworten
Alt 12.02.2012, 20:52  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
BeitrÀge: 603
PHP-Kenntnisse:
AnfÀnger
dreamcatcher wird schon bald berĂŒhmt werden
Standard

Habs mir jetzt genauer angesehen.

http://www.true-skillz.de/start.php gibt auch 404er zurĂŒck, wenn man normal drauf geht.
(vgl.: http://img692.imageshack.us/img692/9098/35158543hd.png)

Ich weiß nicht, weshalb es so ist, den Grund wirst du im Quellcode finden.

Vorschlag:
Pack alternativ nur ein echo in die start.php rein und schaue, ob es immer noch ein 404er gibt.
Wenn nein, geh Step by Step vor bis du zum Ergebnis/der Stelle kommst, weshalb dies so ist.

GeÀndert von dreamcatcher (12.02.2012 um 20:55 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 12.02.2012, 20:53  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
BeitrÀge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Alternative
Versuch den Content der start.php wie folgt in das Div-Element zu bekomen:

PHP-Code:
$.post('URL ZU START.php', function(data) {
  $(
'.DEINDIVELEMENTENCLASSNAME').html(data);
}); 
Gibts immer noch einen 404er?
Ist doch das gleiche in grĂŒn.

Der 404er Status Code wird vom Server gesendet, wie der Client diesen abfÀngt interessiert den Server dabei nicht.

Das Problem sind seine PHP Dateien. Sie liefern Content aber eben auch den 404 Status, was bei einem AJAX Aufruf dazu fĂŒhrt das jQuery in die als Error Handler definierte Funktion springt, unabhĂ€ngig davon ob Content kommt, oder nicht.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 12.02.2012, 21:05  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
BeitrÀge: 603
PHP-Kenntnisse:
AnfÀnger
dreamcatcher wird schon bald berĂŒhmt werden
Standard

Zitat:
Zitat von Dark Guardian Beitrag anzeigen
Ist doch das gleiche in grĂŒn.

Der 404er Status Code wird vom Server gesendet, wie der Client diesen abfÀngt interessiert den Server dabei nicht.

Das Problem sind seine PHP Dateien. Sie liefern Content aber eben auch den 404 Status, was bei einem AJAX Aufruf dazu fĂŒhrt das jQuery in die als Error Handler definierte Funktion springt, unabhĂ€ngig davon ob Content kommt, oder nicht.
Das ist korrekt.

Dass die start.php jedoch auch einen 404er bei einem normalen Aufruf liefert, war mir zu diesem Zeitpunkt noch nicht bekannt.

Wenn man auf http://www.true-skillz.de/start.php geht, dann Chrome Developer Tools öffnet, auf Ressources klickt und sich dann die start.php anschaut, ist bei mir kein 404er vermerkt. Erst bei einem Reload erscheint der 404er [Siehe Bild von oben].

Via HTTP Request Tool (https://chrome.google.com/webstore/d...ofkbjhmcjghlej) gab die Seite außerdem einen 200er zurĂŒck, so dass ich zu diesem Zeitpunkt auf einen Scriptfehler [Fehlender Parameter o.Ä.] spekuliert hatte und und dies durch das Ergebnis eines normalen POST Request sehen ausschließen wollte, ohne seinen Quelltext durchzuschauen.

Zum restlichen Input siehe:
Zitat:
Zitat von dreamcatcher Beitrag anzeigen
[...]Vermutung:
Daher wird die Response nicht in dein Quelltext geladen, da vorher ĂŒberprĂŒft wird, ob der Statuscode == "200" (OK) o.Ä. ist.[...]

GeÀndert von dreamcatcher (12.02.2012 um 21:08 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 13.02.2012, 03:14  
Neuer Benutzer
 
Registriert seit: 11.02.2012
BeitrÀge: 5
PHP-Kenntnisse:
AnfÀnger
RzudemF befindet sich auf einem aufstrebenden Ast
Standard

Hallo ihr zwei .

Das Problem ist gelöst dank eurer Hilfe und den Tip mit dem Statuscode 200. Ich habe einfach in der start.php das hier dazu eingefĂŒgt:

PHP-Code:
 header("HTTP/1.1 200 OK"); 
Vielen Dank, dank euch kann ich mir jetzt mal um was anderes Gedanken machen .

Beste GrĂŒĂŸe
RzudemF 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
Problem: Auslesen eines dynamischen Formulars auf AJAX Basis Messenger PHP Einsteiger 5 18.07.2011 14:49
Problem mit Pfaden bei include skelle PHP-Fortgeschrittene 1 09.01.2011 02:36
Problem mit dem Zoom des dynamisch Àndernden galerie- Hauptbildes dodger JavaScript, Ajax und mehr 2 06.09.2010 13:52
include problem xampp chakran PHP Tipps 2009 8 07.11.2009 08:13
include() und header() Problem Aloex666 PHP Tipps 2009 9 21.09.2009 15:49
Indexdatei/Template include von PHP DarkOverride PHP Tipps 2009 4 12.06.2009 14:18
Problem mit include maischa PHP Tipps 2009 4 19.05.2009 12:44
Ajax + Tabs Problem Kein Genie JavaScript, Ajax und mehr 0 02.05.2009 20:13
Ajax Formular problem mit eingabe themonk JavaScript, Ajax und mehr 2 01.11.2008 20:25
[Erledigt] Problem mit Include pck1983 PHP Tipps 2008 7 15.07.2008 19:13
include problem Madden PHP-Fortgeschrittene 13 22.04.2005 22:09
[Erledigt] Problem mit Include PHP Tipps 2004 17 22.09.2004 15:59
Include Problem PHP Tipps 2004 4 14.09.2004 14:08
include Problem andrew22 PHP Tipps 2004 26 10.09.2004 16:04
GĂ€stebuch / Include Problem PHP Tipps 2004 9 14.07.2004 18:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax kein include php, jquery ajax 404 unterdrĂŒcken, include ajax php

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