Antworten auf deine Fragen:
Neues Thema erstellen

[JS i.V.m. PHP] Funktion ohne Body onLoad

Hansi05

Aktives Mitglied

Hallo,

ich sitze grade an einer Seite, wo man Dinge die man an die Datenbank gesendet hat bearbeiten kann. Da ich das schon viele viele Male gemacht habe ist das auch kein Problem.
Mein Problem liegt hier:

Code:
function preis(preisart){
    if(preisart == 'VB') {
        document.getElementById('preis').innerHTML = '[...]';
    }
    [...]
}
Also wenn die Funktion mit dem Parameter 'VB' aufgerufen wird, dann wird was in 'preis' reingeladen.

Folgendermassen wird das aufgerufen:
Code:
<select name="preis">
    <option value="verhandlung" onClick="preis('VB');">Verhandlung</option>
</select>
Wenn man auf Verhandlung drauf klickt, dann lädt es auch alles in die Div mit der Id preis rein.

So ist die gewünsche Option vorausgewählt:
Code:
<option <?php if($preis['0'] == 'VB') { echo 'selected '; } ?>value="verhandlung" onClick="preis('VB');">Verhandlung</option>
Und ich will jetzt, dass die Funktion preis gleich ausgeführt wird wenn die entsprechende Option mit selected belegt ist.

Ich hoffe, dass ich mein Problem umfangreich und verständlich genug beschrieben habe, sodass ihr mir wie sonst auch immer schnell helfen könnt ;)

Edit: Wie im Titel schon erwähnt würde ich es gerne ohne onLoad im Body-Tag lösen.

mfg
 
Zuletzt bearbeitet:

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

was heisst JS i.V.m. PHP ?

In Verbindung mit ;)
Wenn man den ganzen Tag mit Gesetzen zu tun hat, ist das fuer einen einfach täglich Brot :D

Gibt es denn diesmal Feedback wenn man versucht Dir zu helfen? :hmpf:
Tut mir leid, aber ich habe die letzten Tage viel zu tun, sodass der Thread erst mal in den Hintergrund gefallen ist, weil es einfach nicht so wichtig war ...
 

cebito

undefined

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Tut mir leid, aber ich habe die letzten Tage viel zu tun, sodass der Thread erst mal in den Hintergrund gefallen ist, weil es einfach nicht so wichtig war ...
So viel, die Pralinen hier abzuschöpfen und nicht mal die 2min zu haben Feedback zu geben? Potentielle Helfer würden sich freuen darüber, wenn du dein Thema als gelöst kennzeichnen würdest, dann könnten sie sich nämlich mehr als 2min Lese-, Analysierungs-, Lösungs- und Antwortzeit sparen. Wenn es nicht so wichtig ist, warum werden die Fragen dann überhaupt gestellt?
 

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Ich habe im Moment einfach nicht die Zeit mich um gewisse "Schönheitskorrekturen" zu kümmern.
Ich hätte nur schreiben können danke und ich guck mir das man an wenn ich Zeit habe ...
 
G

glukgluk

Guest

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Ja, das kannst du mit onload und selectedIndex machen, also:

<body onload="preis('onload')">

und dann in der preis-Funktion:

if (preisart == 'onload') {
if (document.formular.preis.selectedIndex == 0) {
[...]
}
}

So kommst du halt einfach an den Index der gewählten Option. Wenn nichts gewählt ist, gibt selectedIndex -1 zurück.

Ah ja, noch zur Ergänzung: Ich bin davon ausgegangen dass deine Selectbox innerhalb eines Formulars mit namen "formular" ist, sonst funktioniert das nicht.
 

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Ich glaube, wenn du Zeit hast, Ausreden zu schreiben, hast du auch Zeit "Danke" zu sagen...
Ich habe mit keinem Wort geschrieben dass ich keine Zeit hatte mich zu bedanken, ich hatte nur keine mich um das Problem und die Lösung zu kümmern.
Ja, das kannst du mit onload und selectedIndex machen, also:

<body onload="preis('onload')">

und dann in der preis-Funktion:

if (preisart == 'onload') {
if (document.formular.preis.selectedIndex == 0) {
[...]
}
}

So kommst du halt einfach an den Index der gewählten Option. Wenn nichts gewählt ist, gibt selectedIndex -1 zurück.

Ah ja, noch zur Ergänzung: Ich bin davon ausgegangen dass deine Selectbox innerhalb eines Formulars mit namen "formular" ist, sonst funktioniert das nicht.
Im Titel habe ich geschrieben, dass ich es gerne ohne Body onLoad machen würde. Aber danke für deinen Vorschlag.
 

sokie

Mod | Web

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

dein event heisst onchange.
HTML:
<select name="preis" onchange="preis()">
    <option value="verhandlung">Verhandlung</option>
</select>
nun musst du in der funktion überprüfen, welchen wert dein select[preis] gerade hat, und danach deinen Content in den Body schreiben.
 

SineTempore

Nicht mehr ganz neu hier

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

so wie ich das verstanden habe, will er dass die funktion beim laden der seite aufgerufen wird wenn des attribut selected gesetzt wird, allerdings ohne onload.
Die Lösung ist mE ganz einfach
hau einfach in deinen <script>-tag
PHP:
<script>
function preis(preisart) {...}
<?php
if($preis['0'] == 'VB') {
    echo "preis('VB');";
}
?>
</script>
 
Zuletzt bearbeitet:

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

dein event heisst onchange.
HTML:
<select name="preis" onchange="preis()">
    <option value="verhandlung">Verhandlung</option>
</select>
nun musst du in der funktion überprüfen, welchen wert dein select[preis] gerade hat, und danach deinen Content in den Body schreiben.
Wenn ich onChange richtig verstehe wird das ja nur ausgeführt wenn ich die Auswahlliste anklicke, ich hätte aber gerne, dass sich der Inhalt in die Div "preis" beim Laden der Seite sofort reinlädt. (Je nachdem welche Option mit Hilfe von PHP mit selected belegt ist.) Ich denke deine Methode funktioniert anders oder verstehe ich dich falsch?
so wie ich das verstanden habe, will er dass die funktion beim laden der seite aufgerufen wird wenn des attribut selected gesetzt wird, allerdings ohne onload.
Die Lösung ist mE ganz einfach
hau einfach in deinen <script>-tag
PHP:
<script>
function preis(preisart) {...}
<?php
if($preis['0'] == 'VB') {
    echo "preis('VB');";
}
?>
</script>
Die Methode hört sich zumindest nicht schlecht an, in der Hoffnung dass es funktioniert freue ich mich schon es (hoffentlich) morgen zu probieren.
 
Zuletzt bearbeitet:

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Leider habe ich die Idee von SineTempore nicht zum Laufen bekommen :(

Ich poste mal den Quelltext in der Hoffnung, dass ihr vielleicht einen Fehler findet:

Code:
<script type="text/javascript">
function preis1(preisart){
    f(preisart == 'VB') {
        document.getElementById('preis1').innerHTML = 'blubber';
    } else if(preisart == 'FP') {
        document.getElementById('preis1').innerHTML = 'blubber2';
    } else if(preisart == 'off') {
        document.getElementById('preis1').innerHTML = '';
    }
}                
preis1('VB');
</script>
Und in der Auswahlliste stehts folgendermassen im Quelltext:
Code:
<option selected value="verhandlung" onClick="preis1('VB');">Verhandlung</option>
Wenn ich in der Auswahlliste dann noch mal gesondert auf das vorselektierte "Verhandlung" klicke klappt alles nach Wunsch, nur ich will halt, dass der User gleich den entsprechenden Content reingeladen bekommt ohne die Auswahllist noch mal anzuklicken.

Hier noch mal meine Begruendung warum ich ohne onLoad im Budy-Tag arbeiten will:
Es werden mehrere Datensätze ausgelesen. Dank meiner schwachen JS-Kenntnisse bin ich nicht in der Lage dann alle Datensätze mit einer Funktion zu versehen, sondern muss quasi in der PHP Schleife meine JS-Funktion eintragen und mithilfe der ID aus PHP werden die Funktionen dann quasi durchnummeriert. Also hat in dem Sinne jeder Datensatz seinen eigenen Script-Tag mit seiner eigenen Funktion.

Ich hoffe mal, dass ich mich einigermassen verstaendlich ausdruecken konnte ;)
 
Zuletzt bearbeitet:

SineTempore

Nicht mehr ganz neu hier

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

setz meinen PHP Codeschnipsel mal unter deinen <form>-tag ... natürlich musst du noch <script>-Tags hinzufügen
 

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Vielen Dank. Bis jetzt funktioniert alles wie ich es möchte. Falls ich noch mal Probleme habe, dann melde ich mich wieder ;-)
 

Doitsu

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Ich frage mich gerade, warum du den Inhalt erst mit Javascript 'reinladen' willst, wenn du sowieso mit PHP arbeitest, koenntest du den richtigen Inhalt auch einfach schon mit PHP anzeigen lassen. Ich wuerde so wenig wie moeglich mit Javascript arbeiten.
 

Hansi05

Aktives Mitglied

AW: [JS i.V.m. PHP] Funktion ohne Body onLoad

Das liegt einfach daran, dass es auch Auswahlmöglichkeiten gibt, für die kein Textfeld gebraucht wird wo man was einträgt und das somit ausgeblendet wird.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.640
Beiträge
1.538.506
Mitglieder
67.559
Neuestes Mitglied
mic4mac
Oben