Archivlink: javarea.de Forum > PHP, MySQL & CGI > Grafik in neues Fenster ausgeben
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > Grafik in neues Fenster ausgeben

Pages: [1]

geschrieben von Beat am 25.07.2009 - 17:09
Hallo @all,

Ich schlage mich nun doch schon eine Weile mit folgendem Problem herum: (bin Neulig mit PHP - es darf gelacht werden-)

Ich habe eine "Bildgallerie" mit div. Thumbnails, die beim anklicken eine Grafik in einem neuen "Fenster" offnen sollen.

Wie kann ich einen Link durch PHP in einem eigenen "Fenster" oder "Layer" starten und mittels einen "was auch immer" wieder schliesen??

Ich habe folgnenden Code:
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 

<?php
// Define function!!
// Einsetzten der Umlaute äöü
function myStringChange($string){
    
$string ereg_replace('oe','&ouml;',$string);
    
$string ereg_replace('o&ouml;','ooe',$string);
    
$string ereg_replace('a&ouml;','aoe',$string);
    
$string ereg_replace('u&ouml;','uoe',$string);
    
$string ereg_replace('e&ouml;','eoe',$string);

    
$string ereg_replace('ue','&uuml;',$string);
    
$string ereg_replace('o&uuml;','oue',$string);
    
$string ereg_replace('a&uuml;','aue',$string);
    
$string ereg_replace('u&uuml;','uue',$string);
    
$string ereg_replace('e&ouml;','eoe',$string);

    
$string ereg_replace('ae','&auml;',$string);
    
$string ereg_replace('a&uuml;','aae',$string);
    
$string ereg_replace('u&uuml;','uae',$string);
    
$string ereg_replace('e&uuml;','eae',$string);
    
$string ereg_replace('o&ouml;','oae',$string);

    return 
$string;
}
//; Ende Einsetzten der Umlaute äöü
//; Ende Define function!!

// Werte müssen an das Script übergeben werden
// nur für Test!!! vor gebrauch löschen!!!
$uebergabe1 'tuch';
$uebergabe2 'still';

// Einlesen des Files in ein Arrey und Ausgabe des Headers in Variablen
$file_arr file('../cgi-bin/jrmu_prod.txt');
$header strtolower($file_arr[0]);
$header_arr explode (';'$header);
extract($header_arrextr_overwrite);
$line_count count($file_arr);
$cellcount 0;

// HTML start
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
echo 
'<head>';
echo 
'<title>Jrmu Produkte</title>';
echo 
'<meta http-equiv="Content-Language" content="de-ch">';
echo 
'<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">';
echo 
'<meta name="Author" content="Beat Riederer">';
echo 
'<meta name="Description" content="Die Stickereien von jrmu">';
echo 
'<link rel="stylesheet" type="text/css" href="./css/jrmu.css">';
//echo '<script language="javascript" src="./js/mouseoff.js" type="text/javascript"></script>';
// <!-- <style type="text/css">
// * ... Hier werden spezial Formate definiert ... */
// </style> -->
echo '</head>';
echo 
'<body>';


// *** Test *****
echo $uebergabe1'<br>';
echo 
$uebergabe2'<br>';
echo 
'total der Elemente in Arry file_arr = '$line_count;
echo 
'<br>';
echo 
$header;
echo 
'<br>';
echo 
$typ'<br>';
echo 
$kategorie'<br>';
echo 
$cellcount'<br>';
echo 
'======= <br>';
// *** End Test *** 


echo '<table border="0" cellpadding="0" cellspacing="0" width="510">';
echo 
'<tr >';
foreach(
$file_arr as $file_item){
    
$line_arr = array($file_item);
    foreach(
$line_arr as $item){
        
$item_arr explode (';',$item);
        
$item_count count($item_arr);
        if(
$item_arr[0] == $uebergabe1){
            if (
$item_arr[1] == $uebergabe2){
                
$typ $item_arr[0];
                
$kategorie $item_arr[1];
                
$thumbnails $item_arr[2];
                
$grafik $item_arr[3];
                
$beschreibung myStringChange($item_arr[4]);
                if (
$cellcount == 3):
                    
$cellcount 0;
                    echo 
'</tr>';
                    echo 
'<tr>';
                endif;
                
$cellcount $cellcount+1;
                echo 
'<td align="center" valign="middle" height="170">';
                echo 
'<a href='$grafik'><img border="0" src=.'$thumbnails'></a>&nbsp;<br>';
                echo 
'<a href='$grafik'>'$beschreibung'</a>';
                echo 
'</td>';
            }
        }
    }
}
echo 
'</tr>';
echo 
'</table>';
echo 
'</body>';
?>



Der Code liest aus dem Verzeichnis cgi-bin aus dem file jrmu_prod.txt diverse Angaben für die Gallerie aus und baut dann die HTML Seite auf.
Das Klappert alles eigentlich recht gut. Ich habe aber keine Peilung, wie ich die Ausgabe in ein eigenes Fenster bringe.

Bin für Hilfe dankbar!

geschrieben von Micha am 25.07.2009 - 21:13
Hi,

ist es wirklich ein PHP Problem? Fenster in Links spricht man idR über target an. Ist es wirklich das, was Du suchst?

Micha

geschrieben von Beat am 26.07.2009 - 16:36
Hallo Micha,

Nein eigentlich ist nicht das HTML Attribut target das Problem.
Ich habe javascript welches welches mir die ausgabe in ein neues Fenster ausgiebt.
es handelt sich um pics.js das Script läuft einwandfrei, wenn ich es in HTML einsetze und die übergabe mit:


<a href="javascript:OpenNewWindow('beispiel.jpg')">


an das Script übergebe.
leider scheint das mit PHP nicht so zu funzen wie ich das will.
Ich habe Probleme mit den " bzw mit den ' und deren interpretation.
ich kriege die Syntax einfach nicht gebacken!!

geschrieben von Micha am 26.07.2009 - 17:51
Hi

HTML-Quelltext
1: 
<a href="javascript:OpenNewWindow('<?php echo $grafik; ?>')">


Micha




geschrieben von Beat am 27.07.2009 - 12:27
Hallo Micha,

Danke für Deinen Einsatz.
Die Syntax für HTML Code ist mir bekannt:
HTML-Quelltext
1: 
<a href="javascript:OpenNewWindow('<?php echo $grafik; ?>')">

und das würde sicher auch gehen, aber ich will ja das Script in PHP halten, also denke ich, ich muss das mit
PHP-Quelltext
1: 
2: 
3: 

<?
echo '<a href="javascript:OpenNewWindow('$grafik.' )">'
?>


oder irgendwie in dieser Art hinbekommen.

Wie schon Eingangs erwähnt soll das Script die HTML Code Ausgabe machen.
Um es klar zusagen, es ist ein PHP-Script, das die Ausgabe für den Browser bereitstellt und nicht ein HTML-Code der PHP enthält.
Ich hoffe Du verstehst was ich sagen will. Ich weiss nich wie ich es anders erklären soll.
Vielen Dank für weitere Hilfe.


geschrieben von Micha am 27.07.2009 - 15:10
Hi,

ich versteh Dich schon aber mMn. solltest Du es gerade nicht so machen, wie Du willst. Im Allgemeinen versucht man HTML und PHP zu trennen und nicht alles durch echo auszugeben. Schau Dir nur die ganzen templatebasierenden Seiten an. Das wäre so wie Du es gern haben willst, gar nicht denkbar.

PHP-Quelltext
1: 
2: 
3: 

<?
echo "<a href=\"javascript:OpenNewWindow('. $grafik.' )\">";
?>



Micha

geschrieben von Beat am 27.07.2009 - 17:06
Hallo Micha,

Einfach Grenzgenial!! Ich habe Deinen hinweis mal umgesetzt und siehe da es GEHT!!

Der code sieht zwar etwas gewöhnungsbedürftig aus, ich habe das mit dem einrücken nicht so im Griff aber laufen tut es soweit perfekt

Jetz muss ich nurnoch herausfinden wie ich die Parameter an das Script übergebe.
Vielen Dank Micha!!

Hier noch der Code:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 

<?php
// Define function!!
// Einsetzten der Umlaute äöü
function myStringChange($string){
    
$string ereg_replace('oe','&ouml;',$string);
    
$string ereg_replace('o&ouml;','ooe',$string);
    
$string ereg_replace('a&ouml;','aoe',$string);
    
$string ereg_replace('u&ouml;','uoe',$string);
    
$string ereg_replace('e&ouml;','eoe',$string);

    
$string ereg_replace('ue','&uuml;',$string);
    
$string ereg_replace('o&uuml;','oue',$string);
    
$string ereg_replace('a&uuml;','aue',$string);
    
$string ereg_replace('u&uuml;','uue',$string);
    
$string ereg_replace('e&ouml;','eoe',$string);

    
$string ereg_replace('ae','&auml;',$string);
    
$string ereg_replace('a&uuml;','aae',$string);
    
$string ereg_replace('u&uuml;','uae',$string);
    
$string ereg_replace('e&uuml;','eae',$string);
    
$string ereg_replace('o&ouml;','oae',$string);

    return 
$string;
}
//; Ende Einsetzten der Umlaute äöü
//; Ende Define function!!

// Werte müssen an das Script übergeben werden
$uebergabe1 'tuch';
$uebergabe2 'still';

// Einlesen des Files in ein Arrey und Ausgabe des Headers in Variablen
// $url = 'http://intranet';
$file_arr file('../cgi-bin/jrmu_prod.txt');
$header strtolower($file_arr[0]);
$header_arr explode (';'$header);
extract($header_arrextr_overwrite);
$line_count count($file_arr);
$cellcount 0;
?>
<!-- // HTML start -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>Jrmu Produkte</title>
<meta http-equiv="Content-Language" content="de-ch">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="Author" content="Beat Riederer">
<meta name="Description" content="Die Stickereien von jrmu">
<link rel="stylesheet" type="text/css" href="./css/jrmu.css">
<script language="javascript" src="./js/mouseoff.js" type="text/javascript"></script>
<script language="javascript" src="./js/pics.js" type="text/javascript"></script>
<!-- <style type="text/css">
// * ... Hier werden spezial Formate definiert ... */
// </style> -->
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="510">
    <tr>
<?php
    
foreach($file_arr as $file_item){
    
$line_arr = array($file_item);
    foreach(
$line_arr as $item){
        
$item_arr explode (';',$item);
        
$item_count count($item_arr);
        if(
$item_arr[0] == $uebergabe1){
            if (
$item_arr[1] == $uebergabe2){
                
$typ $item_arr[0];
                
$kategorie $item_arr[1];
                
$thumbnails $item_arr[2];
                
$grafik $item_arr[3];
                
$beschreibung myStringChange($item_arr[4]);
                if (
$cellcount == 3):
                    
$cellcount 0;
?>
                    </tr>
                    <tr>
<?php
                
endif;
                
$cellcount $cellcount+1;
?>
        <td align="center" valign="middle" height="170">
            <font class="text3">
                <a href="javascript:OpenNewWindow('<?php echo $grafik?>')"><img border="0" src="<?php echo $thumbnails?>"></a>&nbsp;<br>
                <a href="javascript:OpenNewWindow('<?php echo $grafik?>')"><?php echo $beschreibung?></a>
            </font>
        </td>
<?php
            
}
        }
    }
}
?>
    </tr>
</table>
</body>
</html>





Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.