doorgeven van een variabel

Status
Niet open voor verdere reacties.

ruudboy

Gebruiker
Lid geworden
7 okt 2008
Berichten
9
Ik roep een functie aan met:
rechtsklik_map_admin('<?php echo $mappen[$i]; ?>');


Vervolgens word deze variable doorgegeven aan een javascript functie:

PHP:
var isie=0; 

if(window.navigator.appName=="Microsoft Internet Explorer"&&window.navigator.appVersion.substring(window.navigator.appVersion.indexOf("MSIE")+5,window.navigator.appVersion.indexOf("MSIE")+8)>=5.5) 
  { 
    isie=1; 
  } 
else 
  { 
    isie=0; 
  } 
if(isie) 
  { 
  var html=""; 
  html+='<table style="border:1pt solid #404040"  
          bgcolor="#E6E6EE" width="140" height="120"  
           cellpadding="0" cellspacing="1">'; 
  html+='<tr><td onclick="alert<this.value);">Naam 
          wijzigen<\/td><\/tr>';  
  html+='<\/table>'; 
  var oPopup = window.createPopup(); 
  } 

function dopopup(x,y) 
  { 
  if(isie) 
    { 
    var oPopupBody = oPopup.document.body; 
    oPopupBody.innerHTML = html; 
    oPopup.show(x, y, 140, 220, document.body); 
   } 
  } 

function click_map() 
  { 
  if(isie) 
     { 
     if(document.all) 
       { 
       if(event.button==2) 
         { 
         dopopup(event.x-1,event.y-1); 
         } 
       } 
    } 
  } 

function rechtsklik_map_admin(test) 
  { 
  alert(test); 
  dopopup(event.x,event.y);return false; 
  document.onmousedown = click_map; 
  }



De variabel word doorgeven en in de variable test gestopt:
function rechtsklik_map_admin(test)


Vervolgens moet hij in de onclick event komen:
html+='<tr><td onclick="HIER DUS">Naam wijzigen<\/td><\/tr>';

de onclick moet worden:
window.location='verkenner.php?folder=DE VARIABEL TEST


Wie kan mij helpen met dit probleem ?
Ik ben al vrij ver maar loop vast in de onClick event
 
Laatst bewerkt:
ik zie in je code dit staan:
PHP:
html+='<tr><td onclick="alert<this.value);">Naam 
          wijzigen<\/td><\/tr>';

"alert<this.value);" kan natuurlijk niet. Moet dit zijn: "alert(this.value);"

Je hoeft ook de slash ( / ) niet te escapen met een backslash, aangezien het geen speciale betekenis heeft.

Of, met je code erin:
Code:
html+='<tr><td onclick="window.location=\'verkenner.php?folder=\''+test+';">Naam wijzigen</td></tr>';


Overigens zie ik geen rede om alleen voor IE te werken. Alle moderne browsers ondersteunen popups. Daarnaast is blokkeren van functionaliteit op basis van browser herkenning een slechte praktijk. In javascript kun je namelijk kijken welke functies wel en niet gedefinierd zijn. Je kunt dus testen of een functie wel of niet ondersteund wordt en op basis daarvan bepalen of je wel of niet je code wilt uitvoeren. Dat is veel betrouwbaarder dan browserherkenning.
 
Laatst bewerkt:
dat word dus de hele probleem
de eerste zooi aan regels word al aangemaakt voordat de functie word aangeroepen waardoor hij "test" nog niet kent :(


mijn doel is om te ontdekken op welke link men met rechtrs heeft geklikt
en de optie om het in de url te stoppen is geen optie.

en die links worden aangemaakt door een loop waarbij hij alle mappen uitleest uit een directory,
dus de rechtsklik event zit ook in die loop anders had ik het tellertje je wel kunne gebruiken om te bepalen welke aangeklikt is maar dit is geen optie omdat het tellertje automatisch opgehoogd word in de loop oftwel die is altijd de waarde van het aantal mappen die uitgeleest worden.

Misschein heeft iemand ideeen hoe ik zoiets kan bepalen:

Ik heb namleijk het voglende een soort windows verkenner achtig iets.
Hierbij leest hij alle mappen uit
als je met rechts klikt op een map komt de optie om naam wijzigen
maar er zijn meerdere mappen dus hoe bepaal ik welke map het is
 
dat word dus de hele probleem
de eerste zooi aan regels word al aangemaakt voordat de functie word aangeroepen waardoor hij "test" nog niet kent :(

Dan zit er een fout in je ontwerp. Het kan niet zo zijn dat je je html aanmaakt voordat je weet waar je mee te maken hebt. De oplossing is dus simpel genoeg, maak je html code later aan, of beter nog, doe het gewoon via PHP. Ik zie ook geen reden om je html al te maken voordat je je popup klaar maakt.

Je doet trouwens helemaal niks met test. Na een functie call aan rechtsklik_map_admin() is het enige wat er met test is gedaan een alert(test). Als je buiten die functie iets met test wilt doen moet je het in een globale variable stoppen. Overigens kun je dat ook doen zonder een functie aan te roepen.

Ik krijg het idee dat je veel te ingewikkeld bezig bent voor iets simpels. Als je een goede communicatie wilt tussen javascript en PHP moet je om te beginnen al je elementen waar je iets mee wilt doen een ID geven. Die kun je vervolgens ook weer gebruiken om te kijken welke map je mee te maken hebt. Of als je in Javascript een array van al je mappen wilt hebben, geef je elk element wat een map voorstelt een name="map" mee. In javascript krijg je dan een array van al die elementen met document.getElementsByName("map"). Dan kun je de id="map_{$i}_{$mapnaam}" gebruiken om aan te geven welke map het is bijvoorbeeld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan