popup öffnet nicht

lifehunter

Erfahrenes Mitglied
Ich hoffe ihr könnt mir helfen. Ich habe folgendes Problem:
Ich wollte mit einem Javascript ein Popup öffnen. Ich wollte dabei aber auch gleich eine Php-Variable mitgeben. Vorhin habe ich es mal geschafft gehabt das Fenster öffnen zu lassen(jedoch ohne eine variable mitzugeben), aber nun lässt sich noch nciht mal das Fenster öffnen....
Code:
<script language='javascript'>
<!--
function popup(nick)
{
window.open('nickpage.php?nick='+nick,'Test','toolbar=no,width=550,
height=450,location=no,status=no,menubar=no,scrollbars=yes,resizable=0,top=10,left=200');
}
//-->
</script>
(Zeilenumbruch habe ich nur hier gemacht damit es besser zu lesen ist)
Hhiermit ruf ich dann das Ganze auf
PHP:
<?php 
for($i=0;$i<count($online_nick);$i++)
{$online_nick=$online_nick[$i]['nick'];
echo "<a href='javascript:popup($nick)'>$nick</a>";}
?>
Ich hab da jetzt den ganzen Tag dran gehockt und habe rum probiert und gesucht. Aber eine Erklärung für meinen Fehler habe ich leider nicht gefunden :( Wäre geil wenn ihr das schaffen würdet ^^
 
Zuletzt bearbeitet:
Versuch's mal mit:
PHP:
<?php
 for($i=0;$i<count($online_nick);$i++) {
 	$online_nick = $online_nick[$i]['nick'];
 	echo "<a href=\"javascript:popup('".$nick."')\">".$nick."</a>";
 }
 ?>
 
Zuletzt bearbeitet:
  • ich seh da nirgends eine Variable $nick....wo kommt die her?
  • in der Schleife überschreibst du beim ersten Durchlauf den Array $online_nick durch dessen Element [0]['nick']...ist das beabsichtigt?
  • sollte die Variable ein String sein, muss sie in Anführungszeichen ausgegeben werden.

Vielleicht war es ja so gedacht?:
Code:
<?php
for($i = 0; $i < count( $online_nick ); ++$i)
    {
        $nick = $online_nick[$i]['nick'];
        echo "<a href=\"javascript:void(popup('$nick'))\">$nick</a>";
    }
?>
 
also ich habe das mal so abgeändert:
PHP:
<?for($i=0;$i<count($online_nick);$i++)
{$nick=$online_nick[$i]['nick'];
echo "<a href=\"javascript:popup('".$nick."')\">".$nick."</a> ";}?>

nun kann man wenigstens schon mal die popups öffnen. den fehler den ich dabei jetzt aber habe, hab ich vorhin auch schon mal gehabt.
das ganze zeug hier is um nickpages aufzurufen. wenn ich jetzt die nickpage von dem user lifehunter aufrufe wird auch diese angezeigt, aber wenn ich jetzt versuche eine andere nickpage mir anzeigen zu lassen, kommt immer nur die erste, in diesem beispiel die von lifehunter.
aber hey wir kommen dem problem näher :D
danke schon mal!
 
Mein Vorschlag einer universellen, barrierearmen Lösung:
Code:
var _WINDOW_DEFAULT_TARGET = '_blank';
var _WINDOW_DEFAULT_FEATURES = new Array(
	new Array( 'width',	undefined  ),
	new Array( 'height',	undefined  ),
	new Array( 'location',	'yes' ),
	new Array( 'menubar',	'yes' ),
	new Array( 'resizable',	'yes' ),
	new Array( 'scrollbar',	'yes' ),
	new Array( 'status',	'yes' ),
	new Array( 'toolbar',	'yes' )
);



function isUndefined(obj) {
	if( typeof(obj) == "undefined" ) {
		return true;
	} else {
		return false;
	}
}

function isObject(obj) {
	if( typeof(obj) == "object" ) {
		return true;
	} else {
		return false;
	}
}



function getWindowFeaturesFromArray(array) {
	var output = "";
	if( !isObject(array) ) {
		return false;
	}
	for(var i=0; i<array.length; i++) {
		if( !isObject(array[i]) || array[i].length != 2 || isUndefined(array[i][1]) ) {
			continue;
		}
		output += array[i][0] + "=" + array[i][1] + ",";
	}
	return output;
}


function rawWindow(url, target, features) {
	if( isUndefined(features) ) {
		features = getWindowFeaturesFromArray(_WINDOW_DEFAULT_FEATURES);
	} else {
		features = getWindowFeaturesFromArray(_WINDOW_DEFAULT_FEATURES) + "," + features;
	}
	if( isUndefined(target) ) {
		target = _WINDOW_DEFAULT_TARGET;
	}
	var theWindow = window.open(url, target, features);
	return theWindow;
}


function linkPopup(src, features) {
	return rawWindow(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}
PHP:
<?php
	for($i=0; $i<count($online_nick); $i++) {
		$nick = $online_nick[$i]['nick'];
		echo '<a href="nickpage.php?nick='.$nick.'" onclick="return !linkPopup(this, \'toolbar=no,width=550,height=450,location=no,status=no,menubar=no,scrollbars=yes,resizable=0,top=10,left=200\')">'.$nick.'</a> ';
	}
?>
 
Zuletzt bearbeitet:
also wenn ich das von Sven Mintel nehm tut sich wieder nix...
das script von Gumbo is mir ehrlich gesagt bisschen zu lang.
so oder soähnlich wie ich es hin geschrieben habe sollte es ja eigentlich gehen. deshalb will ich nicht sowas langes nehmen
 
Es funktioniert ganz sicher so, der fehler muss irgetnwo beim php liegen.

Bist du sicher, dass es die Variable $nick in deinem Script überhaupt einen Wert zugewiesen bekommt bzw. dass das array $online_nick existiert und Elemente hat?

Bist du außer dem sicher, dass du den Zeilenumbruch, den du wegen der Lesbarkeit oben in der JavaScript-Funktion gemacht hast beim richtigen Script wieder rausgenommen hast? Der führt nämlich ganz sicher zu Fehlern...
Wenn du's gut lesbar haben willst, mach es lieber so:
HTML:
	function popup(nick) {
 		window.open('nickpage.php?nick='+nick,'Test','toolbar=no,width=550,height=450,'+
 		'location=no,status=no,menubar=no,scrollbars=yes,resizable=0,top=10,left=200');
 	}
 
Zuletzt bearbeitet:
also einen wert haben die variablen, weil sonst würde er mir ja nciht die user anzeigen. und der variable nick wird auch ein wert zugesprochen.
es ist aber halt so wenn ich ein mal einen link ankilcke wird einmal das richtige an das popup gesendet und bei jedem weiteren klick, kommt immer wieder das gleiche....
verspeht ihr was ich mein?! ^^
 
Ehrlich gesagt nein, warum sollte nicht immer das gleiche kommen, wenn du immer auf den gleichen Link klickst?
 

Neue Beiträge

Zurück