PHP MySQL Datenübergabe in Frame??

  • #1
S

safer

Bekanntes Mitglied
Themenersteller
Dabei seit
21.12.2001
Beiträge
348
Reaktionspunkte
0
Ort
NRW
Moin,
ich habe in PHP ein Formular gebaut, das mir aus einer SQL Datenbank Daten liefert.
Also als Beispiel:
Gebe mir alle Adressen mit dem Länderkenzeichen FIN zurück.
Funktioniert soweit auch alles einwandfrei. Das Ergebnis wird auf einer neuen Seite ausgegeben.

Jetzt habe ich folgendes Problem:
Will ich das Ergebnis aber in einem Frame zurückgeben funzt es nicht.
(Es werden keine Daten zurückgegeben)

Ich muss es in einem Frame haben, da ich oben die Liste der ausgegebenen Daten habe, und unten ein Formular wo ich die einzelnen Datensätze bearbeiten kann.
Was muß ich machen, das mir die Daten auch im Frame zurückgegeben werden.

Frame:
<frameset rows=50%,*>
<frame name=frmList src=ausgabelist.php>
<frame name=frmEdit src=ausgabeedit.php?action=new>
</frameset>

Also wenn ich die Daten direkt in ausgabelist.php ausgebe, funzt es.
Möchte ich die Daten aber in oben aufgeführten Frame anzeigen lassen geht es nicht.
Wo ist mein Gedankenfehler??

danke und gruß
safer
 
  • #2
Eine Möglichkeit währe, dass du im oberen Frame eine Auswertung machst, und die betreffendende Datensatz-ID an das untere Frame per JavaScript sendest.

in etwa so:
Code:
<?php
// Auswertung der Datenbank
// z.B. Datensatz (ds) = 10;
$ds = 10;
?>
<body onLoad=parent.frmEdit.location.href='ausgabeedit.php?action=new&datensatz=<?php echo $ds; ?>'>

Dazu ist es aber ZWINGEND erforderlich, dass du die DB-Auswertung VOR dem <BODY> Tag machst.


gruss conny
 
  • #3
Conny schrieb:
Eine Möglichkeit währe, dass du im oberen Frame eine Auswertung machst, und die betreffendende Datensatz-ID an das untere Frame per JavaScript sendest.
Moin,
danke für deine Antwort, aber das ist nicht das Problem. Im Frame läuft alles einwandfrei.
Also oben die Liste unten die Seite zum editieren. Funktioniert!
Mein Problem ist, wenn ich den Frame aufrufe, kommen alle Datensätze aus der Datenbank.
In ausgabelist.php steht folgende SQL Anweisung:
mysql_query(select * from adressen order by nname )
Wie gesagt, das funzt einwandfrei.
Mein prob ist, wenn ich den Frame aufrufe möchte ich vorher eingeben, welches Land angezeigt werden soll. (Wenn alle kommen, wird es unübersichtlich über 1500 Datensätze)

Rufe ich die ausgabelist.php mit dieser Form direkt auf (nicht im Frame),
<form action=ausgabelist.php method=GET>
  <input type=text size=3 name=sqllandkz>
  <input type=submit value=OK>
  </form>

Alles einwandfrei, es werden nur die Länder angezeigt , die ich haben möchte.
Jetzt mein Problem: wird die ausgabelist.php im Frame aufgerufen, werden mir keine Daten mit dem sqllandkz angezeigt.

Hoffe ich konnte es jetzt ein wenig verständlicher rüberbringen

Danke und gruß
safer
 
  • #4
OK, hab das Szenario mal nachgebaut, ich hab ehrlich gesagt k.A. wo der Wurm drinn sein soll. :-\
Oder ich bin hier bei ner falschen Diagnose :-\

Frame-Links (bei dir Oben)
Code:
<?php
....

include('adodb/adodb.inc.php');
$conn = &ADONewConnection('mysql');
$conn->PConnect('localhost','xxxxx','xxxxx','frame_test');
$sql =->select name, id from kontinent ORDER by name';
$rs = $conn->Execute($sql);

print <h2>Frame Links</h2><br><br>;
print <form action='../main/main.php' target='main' method='POST'>;
print $rs->GetMenu2('kontinent',$_POST['kontinent'],false);
print <input type='submit' value='Übernehmen' name='submit'>;
print </form>;

....
?>

Main-Frame (bei dir Unten)
Code:
<body>
<h2>Main Frame</h2>
<?php
if($_POST['kontinent']) {
	include('adodb/adodb.inc.php');
	$conn = &ADONewConnection('mysql');
	$conn->PConnect('localhost','xxxxx','xxxxx','frame_test');
	$sql =->select id, name from land WHERE kon_id='.$_POST['kontinent'].' ORDER by name';
	if($rs = $conn->Execute($sql)) {
		while ($arr = $rs->FetchRow()) {
			 print $arr[1].<br>;
		}
	}
}
?>
</body>


gruss conny
 
  • #5
Hallo Conny,
herzlichen dank erstmal, das du dich da so reindenkst ;)

Wenn wir mal von deinem Beispiel ausgehen, wählst du links aus (wäre bei mir oben) Rückgabe rechts soweit alles OK.

Ich möchte aber vorher die Auswahl mitgeben.

Bevor deine Beispielseite in Frames aufgeht.
(Also gebe ich auf der Seite mein länderkz ein) OK und
jetzt wird der Frame aufgerufen.
Nun sollen alle Länder (links) angezeigt werden, die meiner Vorgabe entsprechen
Sodass links jetzt eine Liste steht mit allen Ländern(bei mir Adressen mit dem vorher mitgegebenen länderkz ) die in der Datenbank vorhanden sind.
Und rechts kann die linke Seite editiert werden.

Das ist eigentlich mein Problem.

Werde mal Versuchen das Problem Online zu stellen, wir aber etwas dauern.

Danke und Gruß

safer
 
  • #6
Jup, Online stellen ist ein Wort ;) ;)
 
  • #7
OK, jetzt kapier sogar ich was du willst ;) :D

Hab das irgendwie nicht kapiert, dass du das Frameset schon mit Parametern öffnen willst :-\

Nun gut, so kann das nix werden. Du Übergibst zwar die Variable sqllandkz an das Frameset, aber an das Obere Frame übergibst du es nicht ;D ;D

Dazu musst nun das Frameset in *php umwandeln und das obere Frame mit der Variablen sqllandkz aufrufen.

Dann sollte die Sache rennen ;) ;)


gruss conny
 
  • #8
Danke, werde es mal so versuchen.
Melde mich dann nochmals

gruß
safer
 
  • #9
Conny schrieb:
Dazu musst nun das Frameset in *php umwandeln und das obere Frame mit der Variablen sqllandkz aufrufen.

Hiiiiiiiiiilfe,
entweder bin ich zu blöd oder ich kann einfach nicht vom Schlauch runter. ;D ;D

Hab jetzt mal das Frameset in php umgewandelt, und hab das obere Frame mit der Variable spllandkz aufgerufen. Es wird aber immernoch nichts Angezeigt. :-[

Gruß
safer
 
  • #10
Sollte aber funktionieren.
Hab's gerade nochmal getestet ;)

Sieht ungefähr so aus (OK, mein Beispiel hat 3 Frames)

Code:
<?php
$param = false;
if($_REQUEST['sqllandkz']) $param = skllandkz=.$_REQUEST['sqllandkz'];
?>
<frameset cols=250,* frameborder=NO border=0 framespacing=0>
 <frame src=menu2/frame_left.php name=leftFrame scrolling=NO noresize>
 <frameset cols=*,135 frameborder=NO border=0 framespacing=0>
		<frame src=main/main.php?<?php echo $param; ?> name=main>
		<frame src=menu2/frame_right.php name=rightFrame scrolling=NO noresize>
	</frameset>
</frameset>

und in der Main.php musst du dann $_REQUEST['sqllandkz'] abfragen.


gruss conny
 
  • #11
Conny schrieb:
und in der Main.php musst du dann $_REQUEST['sqllandkz'] abfragen.

Moin,
hab am Wochenende mal ein paar Fliesen gelegt, ;D ;D
ging mir leichter von der Hand als dieses prob. :)
Meld mich auch deshalb erst jetzt.

Ich bekomme einfach keine Daten zurück,  :mad:
Wie genau, muß die Abfrage von $_REQUEST['sqllandkz'] aussehen??

Ich stehe echt auf dem Schlauch, oder doch zu blöd :'(.

Gruß
safer
 
  • #12
safer schrieb:
Wie genau, muß die Abfrage von $_REQUEST['sqllandkz'] aussehen??

OK, ein guter Anfang währe mal den Request in der ausgabeedit.php selbst abzufragen.

Code:
<?php

print_r($_REQUEST);

?>

[ ] Die Variable sqllandkz wird nicht angezeigt
[ ] Die Variable sqllandkz wird angezeigt, aber ohne Wert
[ ] Die Variable sqllandkz wird mit Wert angezeigt

Check das mal ;)

gruss conny
 
  • #13
Moin,
mit
Code:
<?php

print_r($_REQUEST);

?>
bekomme ich jetzt
Array ( )
angezeigt.
 
  • #14
OK, nächster Schritt

Poste mal:

a) das Frameset, besser währe die ganze Datei.
Außer dem Set selbst und ein bissle PHP dürfte ja sonst nix drinn stehen.

b) den Link mit dem du sqllandkz übergibst.


gruss conny
 
  • #15
Tschuldigung, :'(
ich hab da einen Fehler gemacht.

Wenn ich das Länderkenzeichen DK eingebe,
bekomme ich mit
Code:
<?php
print_r($_REQUEST);
?>
folgendes angezeigt:

Array ( [sqllandkz] => DK )

Somit sollte die übergabe ja funktionieren. Oder??

Gruß
safer
 
  • #16
Korrekt ;)

D.H. Frameset ist OK und Parameterübergabe ist OK, immerhin etwas ;)

Nächster Schritt:

Wenn ich das richtig in Erinnerung habe, soll es ja 2 Möglichkeiten der Übergabe des sqllandkz geben

a) Direkt über das Frameset (funktioniert noch nicht)
b) Aus dem oberen Frame heraus (funktioniert schon)

Jetzt sollte es doch kein Problem sein, das Ding zum laufen zu bringen :-\

Theoretisch ist es doch die gleiche Abfrage. Ob nun direkt aufgerufen oder über den oberen Frame.
Vorausgesetzt, die Variablen heißen überall gleich !!!

Werden denn vom oberen Frame noch andere Variablen übergeben, ohne die das untere Frame keine Abfrage erstellen kann ???
Die würden natürlich bei der direkten Abfrage im Moment noch fehlen.


gruss conny
 
  • #17
Conny schrieb:
Wenn ich das richtig in Erinnerung habe, soll es ja 2 Möglichkeiten der Übergabe des sqllandkz geben

Nein, wieso 2 ?
Hinweis: Der Link ist noch aktuell.

In dem Beispiel hatte ich 2 Möglichkeiten zur Erklärung gemacht.
1. Alle Daten Anzeigen (Im oberen Frame) select * from bezugs

2. Auswahl bestimmter Daten (Im oberen Frame) mit vorgegebenem Länderkenzeichen (sqllandkz):
select * from bezugs where landkz=' was, oder wie gehört der $_REQUEST(sqllandkz) hier rein -> ?

dann sollte mein prob doch erledigt sein. Oder!!

gruß
safer
 
  • #18
safer schrieb:
Hinweis: Der Link ist noch aktuell.

Sorry, hab mein Postfach aufgeräumt. Hab den Link nimmer :-\

safer schrieb:
select * from bezugs where landkz=' was, oder wie gehört der $_REQUEST(sqllandkz) hier rein -> ?

In etwa so, aber ich dachte das währe klar :(
Code:
<?php
$sql = select * from bezugs where landkz=' .$_REQUEST['sqllandkz'].-> 
?>

HINWEIS: damit man es besser sieht, hab ich ein paar SPACE reingelogen. Die müssen natürlich wieder weg !!!
 
  • #19
Conny schrieb:
In etwa so, aber ich dachte das währe klar :(
Code:
$sql = select * from bezugs where landkz=' .$_REQUEST['sqllandkz'].->

Ja, klar ist das schon, aber meist liegt der Fehler im Detail:
<?php
$sql = select * from bezugs where landkz=' .$_REQUEST['sqllandkz'].->
?>

Ich hatte die Anführungszeichen vergessen hier Orange hervorgehoben.

Besten dank und gruß
safer
 
  • #20
Soll das heißen es geht jetzt ???
 
Thema:

PHP MySQL Datenübergabe in Frame??

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben