Button, um Variable in Textfeld einzufügen, aber in form?

wireless-dj

Mitglied
Hallo,

ich hoffe, ich bin hier im richtigen Unterforum...?!

Ich hab ein kleines, kniffeliges Problem:

Innerhalb eines Formulars möchte ich einen zusätzlichen Button einfügen, der eine Variable
in ein Textfeld schreibt. Aber, das geht ja eigentlich innerhalb von <form> ... </form> nicht.
Wie macht man Sowas?

Der Button rechts neben dem Textfeld soll den Wert aus $betrag in das Textfeld schreiben,
sodass am Ende mit update_status das ganze Formular abgeschickt wird.
Hier, einmal ganz schnell dargestellt:

PHP:
<?

$page = $_GET["page"];

if ($page == "edit") {

$betrag = 6.45;

?>

<form action="test.php?page=update_status" method="post">

<table width="600" border="1" bgcolor="CDCDCD">
    
    <tr>
        <td align="center" height="10">
            <?php echo $betrag; ?>
        </td>
    </tr>
    <tr>
        <td align="center" height="10">
            
            <input type="text" id="betrag" name="betrag">
            <button id="btn">Betrag einfügen</button>
            
        </td>
    </tr>
    <tr>
        <td align="center" height="10">
            <input value="update_status" type="submit" class="button">
        </td>
    </tr>
</table>

</form>

<?

}



if ($page == "update_status") {

    $bezahlt = $_POST["betrag"];
    
    echo ("<br><br><br>es wurden $bezahlt bezahlt.<br><br><br>");
    
    echo ("<a href=test.php?page=edit>edit</a>");

}

?>

Kann mir Jemand helfen?

Danke!!!
 
Innerhalb eines Formulars möchte ich einen zusätzlichen Button einfügen, der eine Variable
in ein Textfeld schreibt. Aber, das geht ja eigentlich innerhalb von <form> ... </form> nicht.
Warum bist Du denn der Meinung, dass das nicht geht? Vermutlich, weil die Default-Aktion eines Buttons das Abschicken des Formulars ist. Das ist jedoch kein Zwang, wenn Du den Typ des Buttons auf "button" setzt unterbleibt das Abschicken und Du kannst mit Javascript einen Eventlistener registrieren, der den Inhalt des Eingabefeldes in die Tabellenzelle überträgt.
 
Oh, hallo Ulrich! :)

Ich hoffe, es geht Dir gut?!

Ohje... Javascript.... da ist es wieder.
Da habe ich wieder das Problem, die Variable aus PHP in Javascript zu bekommen, und die dann in das Textfeld ( nicht Tabellenzelle! ) zu setzen, um sie dann im Submit mit abzusenden. Da war doch irgendwas mit Variablen von Javascript nach PHP schieben, das ging doch so einfach nicht, oder?

Ich fürchte, das wird eine Hürde....

Gruß,

Volker
 
Hallo Volker, willkommen zurück! Mir war schon so, dass Du früher schon gepostet hattest und wir im Gespräch waren. Es ging irgend wie um Rechnungswesen, nicht wahr? Danke, mir geht es so weit gut, ich hoffe, bei dir auch alles OK.

Ich hatte deine Frage so verstanden: Beim Laden der Seite wird zunächst der feste Wert 6.45 in die Tabellenzelle eingetragen. Der Benutzer hat dann die Möglichkeit, im Eingabefeld etwas anderes einzugeben und mit dem Button in die erste Tabellenzelle zu kopieren. Was ich nicht verstanden habe, ist der Sinn des Ganzen: Im Eingabefeld steht der Wert ja schon und wird auch beim Abschicken des Formulars an den Server übertragen. In der Tabellenzelle ist er nur gedoppelt und geht verloren, wenn man das Formular abschickt.
 
PS:
die Variable aus PHP in Javascript zu bekommen, und die dann in das Textfeld
In das Textfeld kannst Du sie aus PHP genau so bekommen, wie in die Tabellenzelle: Einfach das value-Attribut zuweisen:
Code:
<input type="text" id="betrag" name="betrag" value="<?php echo $betrag; ?>">
Hilft das weiter?
 
Ja, wir hatten letztes Jahr regen Kontakt, es ging / geht um eine Faktura.
Ich benutze die, und sie läuft tatsächlich nach wie vor sehr gut.
Ein paar Kleinigkeiten sind hinzu gekommen, auch die laufen.

Hintergrund der aktuellen Aktion ist Folgendes:

Wenn ein Kunde eine Rechnung bezahlt, dann gibt es ein sehr zentrales System,
wo ich Zahlungen, Teilzahlungen, Mahnungen, usw. einstellen kann.

So sieht das in der Praxis bei mir aus:
Bildschirmfoto 2023-11-08 um 18.26.46.png
In der Mitte rechts steht "Zahlungseingang", daneben das Textfeld mit 0 €, und rechts daneben steht "← Zahlung".

Momentan gebe ich in diesem Beispiel händisch, oder per Copy & Paste "450.62" ein, und die Rest-Forderung rechnet sich auf 0 runter. Dann klicke ich auf [update_status], und die Rechnung ist im System bezahlt.

das "← Zahlung" wollte ich nun durch einen Button ersetzen, der eben genau diese Summe, die ja aus einer Variablen kommt, dort in das Textfeld einsetzt. Die meisten Leute bezahlen tatsächlich komplett, somit wäre es einfacher, und schneller, die Summe per Klick dort einzusetzen.

Ich befürchte aber, dass das schwierig wird, oder ich es sogar lieber lassen sollte, denn, wenn das nur mit Javascript geht, kollidiert das evtl. mit dem bereits vorhandenen Script, welches die Felder bei jeder Eingabe neu berechnet....
Das könnte doof werden.... ‍
 
Ich denke, jetzt verstehe ich es: Die Regel ist wahrscheinlich, dass komplett bezahlt wird und in dem Fall möchtest Du die Aktualisierung automatisieren, so dass Du nur "Zahlung" klicken musst um die Zahlung einzutragen.
wenn das nur mit Javascript geht, kollidiert das evtl. mit dem bereits vorhandenen Script, welches die Felder bei jeder Eingabe neu berechnet....
Das kann gut sein, dass das ein wenig Aufmerksamkeit erfordert. Eine Möglichkeit wäre, den Betrag nur in "Zahlungseingang" einzutragen und das vorhandene Skript macht dann den Rest.
 
Eine Möglichkeit wäre, den Betrag nur in "Zahlungseingang" einzutragen und das vorhandene Skript macht dann den Rest.
Ja, so hatte ich mir das gedacht.
Klick - und der volle, offene Betrag steht in dem Textfeld.
Aber, das ist für mich (!) total schwierig, weil es schon einen Button gibt,
der die ganze <form> ja an die Datenbank abschickt mit den aktualisierten Werten.
 
Das ist der "update_status", der das Formular an die Datenbank schickt, richtig? Der kann ja bleiben wie er ist. Du drückst den Button "Zahlung" und kannst dann kontrollieren ob alles passt. Und dann mit "update_status" endgültig abschicken.
 

Neue Beiträge

Zurück