• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

aufgehendes Eingabefeld

Bourbon

Mitglied
Genau danach suche ich.
Etwas wie die Messagebox in Basic oder ein Alert, in den man Werte eingeben kann.

Sinn des Ganzen:
Ich will, dass der Nutzer eine Eingabe machen kann, aber da es nur ein einziger Wert ist, will ich nicht extra eine neue Seite erstellen.
Da wäre es schon, wenn man den Knopf drückt, etwas ploppt auf, Wert eingeben und zurück auf die Seite.
Ein Schlagwort müsste eigentlich reichen!
 
Genau danach suche ich.
Etwas wie die Messagebox in Basic oder ein Alert, in den man Werte eingeben kann.

Sinn des Ganzen:
Ich will, dass der Nutzer eine Eingabe machen kann, aber da es nur ein einziger Wert ist, will ich nicht extra eine neue Seite erstellen.
Da wäre es schon, wenn man den Knopf drückt, etwas ploppt auf, Wert eingeben und zurück auf die Seite.
Ein Schlagwort müsste eigentlich reichen!

Nennt sich "prompt":
http://www.w3schools.com/jsref/met_win_prompt.asp

Achja, hat natürlich nichts mit PHP zu tun.
 
Schön, danke!
Da es sich hier um JavaScript handelt, habe ich gleich die nächste Fragen:
Bekommt man das auch in einen Button gebastelt?

BEISPIEL:
Code:
<input type=button value="Try it now" onClick= "child=prompt('Wie viele Kinder hast du?','child'); alert(Du hast '+child+'!')"></form>

Müsste doch so gehen, oder?
 
Korrigiert und angepasst, jetzt geht es.

Erhöhen wir nochmals die Schwierigkeit:
Wie kann ich da jetzt den Wert an die Datenbank weitergeben, also die Variable?
 
Korrigiert und angepasst, jetzt geht es.

Erhöhen wir nochmals die Schwierigkeit:
Wie kann ich da jetzt den Wert an die Datenbank weitergeben, also die Variable?

Indem du den Wert nach dem prompt in ein Formular-Input einfügst und das Formular dann abschickst.
Der Teil mit PHP und MySQL ist dir glaube ich klar.

Im höheren Schwierigkeitsgrad könnte man das auch per AJAX machen.
 
Indem du den Wert nach dem prompt in ein Formular-Input einfügst und das Formular dann abschickst.
Der Teil mit PHP und MySQL ist dir glaube ich klar.

Im höheren Schwierigkeitsgrad könnte man das auch per AJAX machen.

Also an AJAX traue ich mich momentan noch nicht ran.
Leider klappt das übertragen noch nicht so, wie ich mir das vorstelle.

Hier der Code:
entweder bekomme ich mittels "echo" die Werte "Kinderanzahl" oder "senden".
PHP:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>" method="post">
<input type="submit" name="child" onClick=" c=prompt('Wie viele Kinder hast du?','Kinderanzahl'); alert('Du hast '+c+' Kinder')">
</form>

P.S.
Ich bitte um Nachsehen für meine vielen (fast unendlichen) Frage!
Ihr habt mir bisher sehr geholfen und ich stelle hier auch nur eine Frage, wenn ich sie nicht durch Googlen oder probieren lösen konnte und meine Literatur mir nichts nützt (durch fehlende Angaben oder schlichtes Unverständnis meinerseits).
 
Zuletzt bearbeitet:
Prompt ist so was von Ghetto. Wenn du unbedingt etwas aufploppen lassen willst, dann nimm doch ein Modal. Das sieht gefälliger aus.
http://getbootstrap.com/javascript/#modals

Auch AJAX ist zumindest per jQuery keine große Sache. Ich hatte im vergangenen Jahr mal eine Anleitung für Dummies geschrieben, wie man Formulardaten per POST an ein PHP Script sendet und von dort wieder zurück schickt.
http://www.html.de/threads/kontaktform-dynamisch-uebermitteln.51036/
Was meinst du mit "so was von Ghetto"? Mit dieser Aussage kann ich leider nichts anfangen :)

Aber ist das Aufwand/Nutzen-Verhältnis beim Modal nicht etwas schlecht? Derart viel Code mit mehreren Dateien um das umzusetzen, was eine einzige Zeile mit prompt() kann?
Oder habe ich irgendwelche besonderen Vorteile durch Modal?
 
Was meinst du mit "so was von Ghetto"? Mit dieser Aussage kann ich leider nichts anfangen :)

Aber ist das Aufwand/Nutzen-Verhältnis beim Modal nicht etwas schlecht? Derart viel Code mit mehreren Dateien um das umzusetzen, was eine einzige Zeile mit prompt() kann?
Oder habe ich irgendwelche besonderen Vorteile durch Modal?

Für dich macht es jetzt sicher keinen Sinn, ein Custom Modal zu nutzen.
JavaScript ist derzeit nicht deine Primärsprache, deshalb macht es auch keinen Sinn sich weiter damit abzugeben.

Modals sind einfach aufgrund der Optik und dem Funktionsumfang besser.

Du wirst aber mit beidem auf jeden Fall zum Ziel kommen.
 
Okay, also behalte ich die für zukünftige Aufgaben im Gedächtnis, bspw. für Verbesserung der Optik etc.

Im Prinzip ist es ja auch nur der eine Wert, der jetzt testweise eingegeben werden soll.

Um zum Ursprungsproblem zurück zu kommen:
Was ist hier falsch?
HTML:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>" method="post">
<input type="submit" name="child" onClick=" c=prompt('Wie viele Kinder hast du?','Kinderanzahl'); alert('Du hast '+c+' Kinder')">
</form>
Ich will nur, dass ich die Anzahl an Kinder (in dem Fall hier c) mittels php an den Server weitergeben kann.
 
Okay, also behalte ich die für zukünftige Aufgaben im Gedächtnis, bspw. für Verbesserung der Optik etc.

Im Prinzip ist es ja auch nur der eine Wert, der jetzt testweise eingegeben werden soll.

Um zum Ursprungsproblem zurück zu kommen:
Was ist hier falsch?
HTML:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]) ?>" method="post">
<input type="submit" name="child" onClick=" c=prompt('Wie viele Kinder hast du?','Kinderanzahl'); alert('Du hast '+c+' Kinder')">
</form>
Ich will nur, dass ich die Anzahl an Kinder (in dem Fall hier c) mittels php an den Server weitergeben kann.

Was soll da auch passieren, alles was du machst, ist der JS-Variable "c" einen Wert zuzuweisen.
Du benötigst ein zusätzliches hidden-<input> dem du den Wert von "c" zuweisen kannst.

Verkürzt:

Code:
<input type="hidden" value="" name="c">
… onclick="document.getElementsByName('c')[0].value = prompt('Wie viele...')" ...
 
Statt dem Wert, kommt jetzt nur noch das hier als Ausgabe:
Ja, es war klar, dass da nichts weiter passiert, ich wusste nur nicht, wie man das ändern kann.

[object HTMLInputElement]
 
Wenn du schon pures JS und Prompt verwenden willst, dann kapsel den Code in einer Funktion.

Code:
<form action="">
    <input type="text" name="test" id="test" value="0">
</form>

(function() {
    var el = document.querySelector("#test");

    el.onclick = function() {
        var c = prompt("Wie viele...");
        this.value = c;

        console.debug(el.value);
    };
})();
 
Poste noch mal deinen gesamten Code.
Gibst du das c wieder per alert aus?
So:
HTML:
<form name=myform>
        <input type=button value="child" onClick="document.getElementsByName('c')[0].value = c=prompt('Wie viele Kinder hast du?','Kinderanzahl'); alert('Du hast '+c+' Kinder')">
        <input type="hidden" value="" name="c">
</form>

Wenn du schon pures JS und Prompt verwenden willst, dann kapsel den Code in einer Funktion.

Code:
<form action="">
    <input type="text" name="test" id="test" value="0">
</form>

(function() {
    var el = document.querySelector("#test");

    el.onclick = function() {
        var c = prompt("Wie viele...");
        this.value = c;

        console.debug(el.value);
    };
})();
Das verwirrt mich jetzt schon wieder. Ich glaube, da muss ich nochmal an die Hand genommen werden.... Der Code gehört sicherlich in 2 Dateien oder?
 
Zurück
Oben