Just nu i M3-nätverket
Gå till innehåll

divhantering


jan-erik

Rekommendera Poster

Anjuna Moon
Ok, men jag kan väl inte bara byta ut ShowContent mot din Showlayer?

Jodå, men låt den behålla namnet ShowContent(). Glöm inte den korta men viktiga raden var selDiv; som alltså inte skall ligga i någon funktion.

 

 

[inlägget ändrat 2008-03-13 14:14:05 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

fantastiskt va bra det blev till slut. det funkar helt perfekt, och nu ska jag fira med bastu o öl.

Jag tror jag måste ge mig tid att lära mig JS mera på djupet, och inte hålla på att gnugga fram nya lösningar varjte gång.

tack så hemskt mycket Anjuna, dagens lektion var mycket givande.

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Bastu och öl, ahhh! :thumbsup::)

(det ska det f.ö bli för mig i helgen också, är bortskämd med bastu och gym i vår BRF =)

 

Länk till kommentar
Dela på andra webbplatser

Kunde inte låta bli att vandra vidare i koddjungeln, och då fastnade jag förstås efter 3 minuter.

 

<input name="pgvalx" type="button" 
value="<? echo $id; ?>"
onclick=" ShowContent('pgw2'); return true;"
  href="javascript:ShowContent('pgw2')"> 

 

 

Här vill jag ha med mig parametern "$id" till det phpscript som körs i div pgw2.

jag gissar att jag till onclick ska lägga

var pgw2id='<? echo $id; ?>';

 

men hur gör jag lämpligast sen?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Menar du att du vill lägga till variabeln som en querystring till php-sidan?

Då måste du ladda om sidan på servern eller lösa det med Ajax.

Serverspråken körs innan javascriptet körs, därför går det inte bara så där att lägga till en variabel till php-scriptet och att servern ska veta det.

 

För att skicka med $id till funktionen:

ShowContent('pgw2','<? echo $id; ?>');

Ta emot den:

function ShowContent(d,phpId)

 

Göteborgstidningen?
Ja, en frysen sådan :)

GT = Gin & Tonic

 

Länk till kommentar
Dela på andra webbplatser

onclick=" ShowContent('pgw2',); return true;"
  href="javascript:ShowContent('pgw2')"> 

kan du skriva in här exakt hur det ska vara?

 

 

 

Förtydliga:

function ShowContent(d,phpId)

 

 

 

man skulle väl iofs kunna tänka sig att man satte en sessionsvariabel innehållande $id, och hämta upp denna ?

 

 

[inlägget ändrat 2008-03-13 16:07:27 av jan-erik]

[inlägget ändrat 2008-03-13 16:08:29 av jan-erik]

Länk till kommentar
Dela på andra webbplatser

Micke_skane

onclick=" ShowContent('pgw2',); return true;"
  href="javascript:ShowContent('pgw2')">

 

Mer korrekt i en knapp(button):

onclick=" ShowContent('pgw2','<? echo $id ?>');"

function ShowContent(d,phpId)

Här kommer variabeln phpid innehålla värdet på parameterna(<? echo $id ?>) du skickar med i funktionsanropet ovan.

Vad du sen vill göra med variabeln är upp till var och en :)

 

Länk till kommentar
Dela på andra webbplatser

"Mera korrekt":

menar du att jag bara ska skriva detta i button-raden?????????

onclick=" ShowContent('pgw2','<? echo $id ?>');"

 

 

 

function ShowContent(d,phpId)

var lägger jag detta?

 

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane
menar du att jag bara ska skriva detta i button-raden?????????
Japp, lägger du händelsehanteraren i en knapp räcker det med:

onclick=" ShowContent('pgw2','<? echo $id ?>');"

 

Är det i ett a-element du lägger det måste du hindra att den triggar en sidladdning, därför lägger du till:

onclick=" ShowContent('pgw2','<? echo $id ?>');return false;"

 

Sen kan man ju såklart göra mycket i hanteraren men detta är grundsättet.

 

var lägger jag detta?
Detta är din funktion som visar/döljer div:sen.

Det enda som är skillnaden är att du ta emot två parametrar istället för en. Den andra parametern innehåller id:et som du vill använda till en php-sida. Vet inte mer vad du tänkt men där kommer inte hända någotting om du inte anropar servern på något sätt.

Sen vet jag inte direkt om det är just i denna funktionen du ska ha denna "händelse" med att hantera php-id:et.

 

Först körs alla include-filer, sen körs serversidan, sist körs klientsida.

Därför hjälper det inte att du bara skickar in id:et i en javascript-funktion.

Du måste säga till php-sidan på något sätt att hantera id:et som är unikt.

 

*

Sen ska du be moderatorn att flytta tråden till php-forumet.

Då har du större chans att få hjälp med php-koden osv...

 

[inlägget ändrat 2008-03-13 16:40:43 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Php-koden klarar jag säkert.

Så här ser js.funtionen ut nu:

 

var selDiv;
function ShowContent(id) {
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}

 

Hur ska den ändras för att funka mot

onclick=" ShowContent('pgw2','<? echo $id ?>');"

 

ska jag ha en funktion som tar in en variabel, och en som tar in två?

alltså ShovContent1 och ShovContent2?

 

 

Länk till kommentar
Dela på andra webbplatser

det ag får fram ur ditt inlägg1639 är att denna funktion ska ersätta den jag har nu:

function ShowContent(d,phpId)

 

ska alltså ersätta

 

var selDiv;
function ShowContent(id) {
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Denna:

var selDiv;
function ShowContent(id) {
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}

 

Ska ersättas med:

var selDiv;
function ShowContent(id,phpid) {
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}

Inne i funktionen kan du lägga till denna rad sist, innan sista }:

alert(phpid);

Då ser du om id:et följer med ifrån onclick-händelsen.

Denna rad tar du bort sen, är bara en kontroll just nu.

 

Men vad du sen gör med id:et är upp till dig.

Skrev lite om det i inlägget innan.

 

Länk till kommentar
Dela på andra webbplatser

jag har gjort så att jag gjort en egen funktion för de fall där jag ska ha både div-parameter och en varable med mej, och en annan funktion där jag bara ska ha div-paramatern.

 

var selDiv;
var phpid;
function ShowContent2(id,phpid) {
alert (phpid);
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}
function ShowContent(id) {
 if (selDiv) selDiv.style.display='none';
 selDiv=document.getElementById(id);
 selDiv.style.display='block';
}

 

Detta funkar faktiskt, jag får ut rätt variabel i alerten i ShowContent2.

Nu är enda problemet hur jag ska få över variablen i php.scritptet.

 

Länk till kommentar
Dela på andra webbplatser

jag la till följande i ShowContent2:

window.location="http://www.jea.se/a/pg3x.php?val="+phpid;

Detta funkar, men hamnar förstås inte i den div som det är tänkt.

 

Länk till kommentar
Dela på andra webbplatser

jag experimenterade, det lär man sig av.

Detta nedan var ganska kul tyckte jag, om än oanvändbart:

Jag gjorde "dynamiska divvar", dvs jag gjorde en php-loop och la upp ett antal divvar med id lika med den variabel jag försöker få in.

så här:

$k=0;
while ($k<5) 
{ 
$k1=1319+$k;
?>
<div id="<? echo $k1;?>" class="showmeny"><?  include "http://www.jea.se/a/pg3x.php?val=<? echo $k1;?>"; ?></div>
<? 
$k++;
}

 

in onclicken har jag

onclick="ShowContent('<? echo $id; ?>');"

 

Det funkar, men det blir ju ganska många divar att lägga upp, det måste ju göras i förväg så att säga.

men rätt kul!

 

 

Länk till kommentar
Dela på andra webbplatser

Kan man sammanfatta så här:

Om man på ett enkelt sätt ska anropa ett script från en form/input och ha med sig en variabel så är det lika bra att använda input/submit/action

medans

Om man ska anropa ett script utan variabel så kan man använda javascript.

 

???

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...