jquery refresh und php variablen

Starlight1986

Grünschnabel
Hallo Leute,

ich habe folgendes Problem.
Meine Seite besteht aus einer Index.php Seite bei welcher ganz am Anfang des Quelltexts ein paar Konfig PHP Seiten includet werden (u.a. Verbindungsinfos zur Mysql DB).

index.php am Scriptanfang
PHP:
<? include("config.inc.php"); ?>

Bis jetzt habe ich die drei Contentbereiche (aus welcher die Webseite besteht) via PHP include in die entsprechenden Bereiche eingebunden. Unterseite1.php,...

Da hier nur ein Seiten Refresh per Seitenreload erfolgte, band ich folgende jquery Anweisung ein um zuerst eine der Contentbereiche (welche eine MySQL Abfrage enthält) ohne Seitenreload zu refreshen

Im Header der index.php
PHP:
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
 $(document).ready(function() {
 	 $("#responsecontainer").load("unterseite1.php");
   var refreshId = setInterval(function() {
      $("#responsecontainer").load("unterseite1.php");
   }, 2000);
   $.ajaxSetup({ cache: false });
});
</script>


</head>



Und an entsprechender Position wird diese Seite per folgender Code eingebunden

Auch in der index.php weiter unten
PHP:
<div id="responsecontainer">


Nun ist es aber so, dass die PHP Datei welche via jquery eingebunden wird nicht mehr auf PHP Variablen der index.php zugreifen kannt. Diese ist zwar eingebunden (an der gleichen Stelle wie vorher per php include, wird auch dort angezeigt aber ist wie abgekapselt.

Der jquery refresh anfürsich funktioniert übrigends wunderbar nur müssen wie gesagt zur korrekten abarbeitung der MySQL Abfragen alles Konfigfiles nochmal in der unterseite1.php includet werden.

Wie bekomme ich das in Griff, dass mir in der unterseite1.php alle php Variablen des Elternelements index.php zur Verfügung stehen?
 
Hi und Willkommen bei tutorials.de,

die einfachste Lösung wäre wohl, die Konfigurationsdaten in der unterseiteX.php erneut zu laden. Am besten benutzt du dafür require_once (übrigens an jeder Stelle), sodass keine Datei zweimal geladen wird:

PHP:
require_once 'config.inc.php';

Wird z.B. unterseite1.php über die index.php eingebunden, wird require_once nicht mehr ausgeführt, da die index.php diese bereits geladen hat. Lädst du allerdings Inhalt per jQuery nach, wird die config.inc.php auch in unterseite2.php z.B. mitgeladen.

Best regards

PS: da es ein PHP Problem ist, hätte es wohl besser im PHP Bereich gepasst :)
 
Ich glaube das behebt mein Problem nicht.
Wenn ich die unterseite1.php via include() in die index.php einbinde, stehen mir alle Variablen der Index.php automatisch in der unterseite1.php zur Verfügung.

Wenn ich unterseite1.php via jquery in die index.php einbinde nicht.

Ich möchte nicht auf jeder meiner Unterseiten einen require oder include auf die config.in.php machen müssen, schön wäre es wenn mir auch hier die Variablen der index.php zur Verfügung stehen.
 
Wenn deine Unterseiten von Vorgängen in der index.php abhängig sind, ist das kein gutes Programmdesign. Da sollte unbedingt nachgebessert werden. Konkrete Tipps kann ich dir ohne Quellcode natürlich nicht geben.. :)

[code=php]...[/code]
 
Warum ist es schlecht unterseiten von der index.php und deren variablen abhängig zu machen?
Ist doch normal, in der Regel (wie hier) können die Unterseiten eh nicht alleine stehen.

Wenn ich diese einbinde habe ich z.b. den Vorteil dann ich alle Configfiles nur einmal (index.php) einbinden muss. Und nur einen Header mit z.B. Charset definieren muss...

Es muss doch einen Grund (sowie Lösung) geben dass, eine mit jquery eingebundene Seite nicht auf die Variablen des Elternlelements zugreifen kann?
 

Neue Beiträge

Zurück