Avatar billede fiskerendk Nybegynder
14. juli 2004 - 19:50 Der er 12 kommentarer og
1 løsning

JavaScript variabler til PHP Sessions

Hej

Jeg har dette script som er lavet til at vælge bilmærke, model og årgang i 3 dropdown menuer.

i Array1 har jeg lavet en ekstra ting som er varenummeret disse skal selvfølgelig også være på alle de andre arrays.

Men det varenummer skal ikke bruges i dropdown menuerne men skal blot blive en session i php.. altså når man har valgt en bil model

f.eks. BMW E30 1991 skal varenummeret fra den laves til en variable som blir smidt i en PHP Session så jeg kan hente den fra mit php script vha.
<? $_SESSION['varenummer'] = $_POST['varenummer']; ?>

<JSScript Kode>
  var openMenu = "";
   
  var v = new Array();   
  v[v.length] = Array(1,'BMW','E30 (240km/h)','1983','1992','BME308592240-7-AM-GE');
  v[v.length] = Array(2,'BMW','E34 (260km/h)','1988','1994');
  v[v.length] = Array(3,'BMW','E36 (220km/h)','1991','1995');
  v[v.length] = Array(4,'BMW','E36 (240km/h)','1991','1995');
  v[v.length] = Array(5,'BMW','E36 (260km/h)','1991','1995');
  v[v.length] = Array(6,'BMW','E46 (240km/h)','1999','2003');

  var myMake = "";
  var myModel = "";
  var myYr = "";
       
  function makeChange(choose_form) {
    if (!choose_form) { choose_form = "choose"; }
       
    var make = eval("document.forms." +choose_form+ ".make");
    var model = eval("document.forms." +choose_form+ ".model");
    var yr = eval("document.forms." +choose_form+ ".year");
   
    myMake = "";
    myModel = "";
    myYr = "";
    if (make) {
      if (make.value!='') {
      model.disabled = false;
      model.options.length = 1;
      model.options[0] = new Option('Vælg','');
      for (i=0; i<=v.length-1;i++) {           
        if (v[i][1] == make.value) {
        model.options[model.options.length] = new Option(v[i][2],v[i][2]);
        }
      }
    }
    }   
  }   
       
  function modelChange(choose_form, selected) {
    if (!choose_form) { choose_form = "choose"; }

    var model = eval("document.forms." +choose_form+ ".model");
    var yr = eval("document.forms." +choose_form+ ".year");

    var yr1 = 0;
    var yr2 = 0;
    var count = 0;
   
      if (model && yr) {
      yr.disabled = false;
      for (i=0; i<=v.length-1;i++) {           

        if (v[i][2] == model.value) {               
        yr1 = v[i][3];
        yr2 = v[i][4];                           
        }
      }
      yr.options.length = 1;       
      yr.options[0] = new Option('Vælg','');
      for (i=yr2;i>=yr1;i--) {
      yr.options[yr.options.length] = new Option(i,i);
      }
      }
  }
       
  function yearChange(choose_form, v) {
    if (!choose_form) { choose_form = "choose"; }
  }

  function showChooseCar() {
    var obj = getObject('changeCar');
    obj.style.display = 'none';
    var obj = getObject('chooseCar');
    obj.style.display = '';
  }
</JSScript Kode>
Avatar billede nikolajdu Nybegynder
14. juli 2004 - 20:15 #1
Jeg forstår ikke dit problem hvis du vil hente med $_POST[] så skal der submittes en form og så er det jo ligetil.
Avatar billede fiskerendk Nybegynder
14. juli 2004 - 20:38 #2
ja men det skal ikke submittes som en form.. det skal bar ligeså snart at BMW E30 1991 f.eks. er valgt så skal den smide en variable uden at den blir set af brugeren. uden en form altså
Avatar billede nikolajdu Nybegynder
14. juli 2004 - 20:52 #3
Tror man skal se et eksempel på hvordan det virker. Ellers må du lure ud fra det her:

<?php
if (isset($_GET["varenummer"]){
$_SESSION['varenummer'] = $_GET["varenummer"];
print "Jeg valgte : ".$_GET["vaerdi"];
}
?>

<form name="f">
<select name="s" onchange="if(this.options[this.selectedIndex].value!='ælg'){self.location.href = self.location+'?varenummer='+this.options[this.selectedIndex].value;}">
<option name"o0" value="Vælg">Vælg</option>
<option name="o1" value="0">BMW</option>
<option name="o2" valude="1">Skoda</option>
</form>

/Nikolaj
Avatar billede fiskerendk Nybegynder
14. juli 2004 - 20:55 #4
du tar bar et kig på:
der har du ihvertfald html delen ud fra hvordan det virker..

men det jeg mangler er varenummeret som ikke skal vælges mellem men blot skal blive en variable når javascriptet er kørt og der er valgt..

http://apache.fiskeren.dyndns.dk/plasmastyle/order.php?mode=1
Avatar billede fiskerendk Nybegynder
14. juli 2004 - 20:59 #5
mine php variabler blir selvfølgelig lavet med

<? $_SESSION['ting'] = $_POST['ting']; ?> når den er blevet submittet. men den skal også tage varenummer med uden for <form></form>. som jo ligger JS scriptet. og som ikke har nogen funktion. kun "behind the scenes"
Avatar billede nikolajdu Nybegynder
14. juli 2004 - 21:15 #6
lol jeg har lige bestilt en bmx til 748 kroner ;-)

Jeg forstår ikke hvad du mener med varenummer er det 'BME308592240-7-AM-GE' og hvornår vil du have det ind?
Avatar billede nikolajdu Nybegynder
14. juli 2004 - 21:16 #7
en bmw selvfølgelig
Avatar billede fiskerendk Nybegynder
14. juli 2004 - 21:17 #8
det er ikke en BMW du har bestilt det er instrumenteringsskiver til :D og ja tak jeg har fået mail hehe..

Ja BME308592240-7-AM-GE er varenummeret. og det skal senere smides ind i Ordrebekræftigelsen. men ikke før.
Avatar billede nikolajdu Nybegynder
14. juli 2004 - 21:31 #9
Jeg forstår ikke hvad problemet er. Hvis du kan aflæse hvilken bil det er så ved du jo også hvilken array du skal finde varenummeret i?
Avatar billede fiskerendk Nybegynder
14. juli 2004 - 21:33 #10
ja det er korrekt men jeg vil ha lavet varenummeret i det array til en variable det jeg ikke ved hvordan man gør.
Avatar billede fiskerendk Nybegynder
04. november 2004 - 09:46 #11
Har ændret taktik.. og har valgt at få oplysningerne ud i det JS via PHP og MySQL.
Avatar billede nikolajdu Nybegynder
04. november 2004 - 13:18 #12
jamen dog....
Avatar billede olebole Juniormester
04. november 2004 - 14:23 #13
Ja, taknemmeligheden er rørende  :oP
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester