Von Formular zu JavaScript Ersetzen

Guri

Mitglied
Hallo, habe eine problem und ich komme nich weiter, daswegen ich suche hier hilfe:​

es sieht so aus: ich will pas namen von formular in javascript bringen (ersetzen) um was zu berechen, ist schwirig zu erklören aber ich versuche mit dise code:
Javascript:
<script language="JavaScript" type="text/javascript">

rechnen.adjust({ obst: 'Apfel' });
rechnen.setMethod( 'Tomate' );

</script>

Also wenn ich per Hand schreibe ein Opst oder Gemüse es klappt, aber ich will bei obst oder gemuese ein platzhalter (variable) setzen und per formular ändern lassen, es sollte so ausehen:
HTML:
<form class="form" action="javascript:preis();">

OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>

GEMUESE:
<select id="gemuese" onchange="preis()">
<option value="Tomate" selected="selected">Tomate</option>
<option value="Gurke">Gurke</option>
</select>
</form>

<script language="JavaScript" type="text/javascript">

rechnen.adjust({ obst : obst });
rechnen.setMethod( gemuese );

</script>

Jetzt komme ich zu punkt, wie bringe ich wenn man wehlt affel oder birnu zu obst
(rechnen.adjust({ obst: obst });
und tomate oder gurke zu gemuese
rechnen.setMethod( gemuese );

Ich habe mir so überlegt aber leider nicht funktioniert, irgendwas fehlt:
HTML:
<form class="form" action="javascript:preis();">

OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>

GEMUESE:
<select id="gemuese" onchange="preis()">
<option value="Tomate" selected="selected">Tomate</option>
<option value="Gurke">Gurke</option>
</select>
</form>

<script language="JavaScript" type="text/javascript">

preis();

function preis() {
    var obst = $('obst').value;
    var gemuese = $('gemuese').value;
}

rechnen.adjust({ obst : obst });
rechnen.setMethod( gemuese );

</script>

Also noch mal, wenn ich Händisch schreibe beim obst apfel oder birne so:
rechnen.adjust({ obst : 'Apfel' });
aber per formular klapt es nicht, leider,

ich bedanke mich im Voraus für jede Hilfe, viele Grüße Guri.​
 
Mit reinem Javascript bekommst du die Werte so:
Javascript:
function preis() {
  var obst=document.getElementById('obst').value;
  var gemuese=document.getElementById('gemuese').value;
}

Mit jquery musst du es so schreiben:
Javascript:
function preis() {
  var obst=$("#obst").val();
  var gemuese=$("#gemuese").val();
}
Ich weiß nicht genau was deine rechnen Funktion macht. Die Variablen obst und gemuese sind nur innerhalb von preis definiert. Die Verwendung ausserhalb wird daher nicht funktionieren. Ich würde sagen, du musst deine rechnen Funktion auch innerhalb von preis aufrufen, oder die Variablen anderes definieren/übergeben.
 
Zuletzt bearbeitet:
Hallo, und danke für die mühe, hat nicht funktioniert, kann sein habe ich falsch erklärt, ich versuch noch mal:
HTML:
<form class="form" action="javascript:preis();">
OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>
GEMUESE:
<select id="gemuese" onchange="preis()">
<option value="Tomate" selected="selected">Tomate</option>
<option value="Gurke">Gurke</option>
</select>
</form>
Dise formular oder html code oder immer wie es heisst,
wenn man Apfel welt soll in javascript opst ersetzen,
wenn man Tomate welt soll in javascript gemuese ersetzen,
in dise script:
Javascript:
<script language="JavaScript" type="text/javascript">
rechnen.adjust({ obst: obst });
rechnen.setMethod( gemuese );
</script>

Also wenn ich Händisch schreibe 'Apfel' oder 'Tomate' es klapt, also so:
Javascript:
<script language="JavaScript" type="text/javascript">
rechnen.adjust({ obst: 'Apfel' });
rechnen.setMethod( 'Tomate' );
</script>

Jetzt noch mal wie ersetze obst durch Apfel oder Birne und gemuese durch Tomate oder Gurke, hier:
Code:
<form class="form" action="javascript:preis();">
OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>
GEMUESE:
<select id="gemuese" onchange="preis()">
<option value="Tomate" selected="selected">Tomate</option>
<option value="Gurke">Gurke</option>
</select>
</form>

<script language="JavaScript" type="text/javascript">
rechnen.adjust({ obst: obst });
rechnen.setMethod( gemuese );
</script>

es sollte durch eine function, so meine ide, aber ich weiss es nicht wie, vieleicht in disem richtung, so:
Code:
function preis() {
    var obst = $('obst').value;
    var gemuese = $('gemuese').value;
}
preis();
rechnen.adjust({ obst: obst });
rechnen.setMethod( gemuese );

durch internet habe ich keine lösung gefunden das wegen suche hier in Forum ein lösung, Danke für die Mühe, vile Grüße Guri.
 
Zuletzt bearbeitet:
Du musst zwischen lokalen und globalen Variablen unterscheiden.
Javascript:
function preis() {
    var obst = $("#obst").val();  //definiert eine lokale Variable
    var gemuese = $("gemuese").val();
    rechnen.adjust({ obst: obst }); //funktioniert wenn rechnen global ist
}
  rechnen.setMethod( gemuese ); //funktioniert nicht, weil gemuese ausserhalb des
                                                           //Gültigkeitsbereiches verwendet wird.
http://www.mediaevent.de/javascript/globale-lokale-variablen.html
 
Hallo bin wieder da, finde keine lösung leider, immer das selbe beispiel und erklärung bei suchen in internet, die ich nicht umsetzen kann,
aber finde ich keine beispiel für meine lösung, vielleicht schreibe ich das falsche such wort, , ob ist möglich keine ahnung, es sollte so sein:

Code:
<form class="form" action="javascript:preis();">
OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>

<script language="JavaScript" type="text/javascript">

var obst = "Obst";

// Wie bringe ich hier rein in das Wort "Obst" von option value das Wort Apfel oder Birne durch ändern auf Formular select onchange="preis();"
// Wenn könnte ich die variable obst ändern in Apfel oder Birne, könnte es klappen, ich weiss nich wie sollte es formulieren
// Wenn ich Händisch schreibe Apfel oder Birne in variable obst es klappt, viellecht mit hilfe von funktion wie untern könnte es klappen, aber fehlen die befehle leider

function preis() {

}
preis();

</script>

Ich bedanke mich im Voraus für eure Hilfe, viele Grüße Guri.
 
Zuletzt bearbeitet:
Das was früher gepostet wurde, funktioniert doch. Wenn die Variable obst außerhalb der Funktion preis() sichtbar sein soll, musst Du jedoch das var davor weglassen:
Code:
var obst = "Obst";
function preis() {
     obst = $("#obst").val(); //definiert eine lokale Variable
     console.log(obst);
}
preis();
 
Hallo, habe getestet und getestet ung getestet, ist folgenes passiert:

HTML:
<form name="form">
OBST:
<select id="obst" onchange="preis()">
<option value="Apfel" selected="selected">Apfel</option>
<option value="Birne">Birne</option>
</select>
</form>

Javascript:
<script language="JavaScript" type="text/javascript">
var obst;
function preis() {
obst = $("#obst").val();

// Mit dise code klappt nicht oder mache ich was falsches

alert("var Obst Innen: " + obst);
}
preis();
alert("var Obst Ausen: " + obst);
</script>

Javascript:
<script language="JavaScript" type="text/javascript">
var obst;
function preis() {
obst = document.getElementById('obst').value;

// Mit dise code klapt nur einmal
// Und greift nur einmal auserhalb von funktion bei laden der seite
// Sonst immer innerhalb von funktion
// Also wenn man weckselt zwischen Apfel und Birne klapt nur innerhalb von funktion
// Aber wenn man die seite erneut ladet klappt wieder ausserhalb von funktion aber nur einmal

alert("var Obst Innen: " + obst);
}
preis();
alert("var Obst Ausen: " + obst);
</script>

Javascript:
<script language="JavaScript" type="text/javascript">
var obst;
function preis() {
obst ="Apfel";
if(document.getElementById('obst').value == "Apfel") {obst="Apfel";}
if(document.getElementById('obst').value == "Birne") {obst="Birne"}

// Mit dise code klappt nur einmal ausserhalb von funktion
// Sonst immer inerhalb von funktion wie bei vorherigen code

alert("var Obst Innen: " + obst);
}
preis();
alert("var Obst Ausen: " + obst);
</script>

Jetzt meine Farge ist, wie bringe ich dazu das jedes mal wenn ich wecksele zwischen Apfel und Birne, dass man auch auserhalb von funktion klappt, nicht nur innerhalb von funktion, ohne dien seite erneut zu laden, wie immer Danke für eure Mühe, und viele Grüße Guri.
 
Zuletzt bearbeitet:
Dieses hier ist jQuery:
Code:
function preis() {
obst = $("#obst").val();
alert("var Obst Innen: " + obst);
}
Damit es funktioniert, musst Du jQuery auch einbinden.
// Mit dise code klapt nur einmal
// Und greift nur einmal auserhalb von funktion bei laden der seite
// Sonst immer innerhalb von funktion
// Also wenn man weckselt zwischen Apfel und Birne klapt nur innerhalb von funktion
// Aber wenn man die seite erneut ladet klappt wieder ausserhalb von funktion aber nur einm
Das kann auch gar nicht anders sein, weil der Code außerhalb der Funktion und damit der betr. Alert ja nur beim Laden der Seite ausgeführt wird. Der Code innerhalb der Funktion wird dagegen jedesmal ausgeführt, weil Du die Funktion preis() im onchange-Event aufrufst. Alles, was beim Ändern passieren soll, musst Du innerhalb der Funktion veranlassen.
Der Code vom letzten Versuch ist unnötig kompliziert mit den zwei if und den zwei getElementById(). Du solltest bei dem davor bleiben.
 
Hi,
soviel ich weiß ist das verwenden ohne var nur bei globalen Variablen erlaubt. Der Lesbarkeit dienlich ist es aber var immer zu verwenden.
Heißt auch wenn die Variable obst innerhalb der Funktion deklariert wird ist es eine globale variable und keine lokale. Dann doch bitte besser außerhalb der Funktion deklarieren da es sonst leicht zu Missverständnissen beim lesen kommt..

Viele Grüße
 
Hm, ich habe es immer so verstanden, dass bei diesem Beispiel
Code:
var obst = "Obst";
function preis() {
     var obst = $("#obst").val(); //definiert eine lokale Variable
     console.log(obst);
}
zwei Variablen mit demselben Namen entstehen, eine globale und eine lokale. Ändert man die lokale, hat dies keinen Einfluss auf die globale. Ist auf jeden Fall bei C so, was ich besser als JS kenne.
 

Neue Beiträge

Zurück