2x Input verknüpfen

Jebote

Mitglied
Guten morgen :)

ich bin ein absoluter Java Anfänger und hab gleich am Anfang ein Problem :D

ich habe 2 Inputs 1x

<input type="number" name="amount_sell" value="" oninput="update()">

und 1 x

<input type="number" name="amount_buy" value="" oninput="update()">


<script type="text/javascript">
function update() {
result = document.forms['exchange'].elements['amount_sell'].value;
resulto = document.forms['exchange'].elements['amount_buy'].value;

document.forms['exchange'].elements['amount_buy'].value = (1 * result / 2 - 1).toFixed(9);


document.forms['exchange'].elements['amount_sell'].value = (4 * resulto / 2 - 1).toFixed(9);


}
</script>

wenn ich aber jetzt einen wert auf der Input 1 eintippe möchte ich das der wert auf Input type 2 angezeigt wird
das gleicht mit der Input type 2

Ich möchte mich im Voraus bedanken.
 
K

kneitzel

Gast
Habe ich Dich richtig verstanden: Derzeit hast Du Code, der beide Felder anpasst. Aber Du möchtest immer nur ein Feld anpassen?

Warum machst Du nicht zwei Funktionen? Erste Funktion: Wenn das erste Feld angepasst wird, dann liest du dieses aus und setzt den neuen Wert im zweiten Feld. Und umgedreht in einer zweiten Funktion.

Wenn es eine Funktion bleiben soll: Du könntest mit Parametern arbeiten. Du könntest also eine Methode erstellen, die Eingabefeld, Ausgabefeld und den Faktor als Parameter übernimmt.
 

Jebote

Mitglied
Vielen lieben dank für die schnelle Antwort :)

wie bereits gesagt bin ich ein totaler Anfänger könntest du mir ein ein Beistpiel schicken wie sowas aussehen kann?
 

Jebote

Mitglied
es ist ein Währungsrechner ich möchte zum beispiel eure in doller ausrechnen wenn ich in der ersten Input denn doller wert eingebe möchte ich
das es mir in der 2 Input den Euro wert anzeigt und wenn ich in der 2 Input Euro wert angebe soll es mir in der ersten doller wert anzeigen eigentlich ganz simpel :D die Berechnung dafür hab ich bereits in PHP geschrieben jetzt brauch ich nur noch Javascript :)
 
K

kneitzel

Gast
Also gut, bauen wir einfach einmal eine kleine Seite. Ich würde Dir aber dringend raten, dir eine Einführung in JavaScript und html anzusehen....

Erst einmal die Seite, die ich aufgebaut habe, als Ganzes:
HTML:
<html>
<head>
  <title>Rechner</title>
</head>
<body>
  <script type="text/javascript">
function update(source, target, multiplier) {
  result = document.getElementById(source).value * multiplier;
  document.getElementById(target).value = result;
}
</script>
  <forms id='exchange'>
    <input type="number" id="amount_sell" value="" oninput="update('amount_sell', 'amount_exchange', 2)">
    <input type="number" id="amount_exchange" value="" oninput="update('amount_exchange', 'amount_sell', 0.5)">
  </forms>
</body>

Kernelement dabei sind die input Elemente.
Diese haben ids, damit sie gezielt angesprochen werden können.
Und wenn sich an der Eingabe etwas ändert, dann wird die update Funktion aufgerufen mit 3 Argumnenten: Source Id, Target Id und ein Multiplikator.

Die update Funktion hat die 3 Parameter. Über document.getElementById wird das jeweilige Element gesucht und value ausgelesen bzw. gesetzt. Die Variable result hätte man sich auch sparen können....
 

Jebote

Mitglied
Wow genau das wie ich es gesucht habe :D

wie bekomme ich jetzt diese werte hinein



document.forms['exchange'].elements['amount_buy'].value = (<?echo number_format($exchange_from['prices'], 2, '.', '');?> * result / <?echo number_format($exchange_to['prices'], 2, '.', '');?> - <? echo $exchange_fee;?>).toFixed(9);


document.forms['exchange'].elements['amount_sell'].value = (<?echo number_format($exchange_to['prices'], 2, '.', '');?> * resulto / <?echo number_format($exchange_from['prices'], 2, '.', '');?> - <? echo $exchange_fee;?>).toFixed(9);
 

Jebote

Mitglied
ich hab es soweit hinbekommen

<input type="number" placeholder="Enter amount to sell" class="form-control border-input" name="amount_sell" id="amount_sell" style="height:40px;" step="0.00000100" value="<?echo number_format($exchange_from['menge'], 8, '.', '');?>" oninput="update('amount_sell', 'amount_buy', <?echo number_format($exchange_from['prices'], 8, '.', '');?> / <?echo number_format($exchange_to['prices'], 8, '.', '');?>)">

<input type="number" placeholder="Enter amount to buy" class="form-control border-input" name="amount_buy" id="amount_buy" style="height:40px;" value="" oninput="update('amount_buy', 'amount_sell', <?echo number_format($exchange_to['prices'], 9, '.', '');?> / <?echo number_format($exchange_from['prices'], 9, '.', '');?>)">


<script type="text/javascript">
function update(source, target, multiplier) {
result = document.getElementById(source).value * multiplier;
document.getElementById(target).value = (result).toFixed(8);
document.getElementById("bhash").innerHTML = (result).toFixed(8);
}
</script>

wie mach ich jetzt das auf input type sell 2 % abgezogen werden ? :)
 
K

kneitzel

Gast
wie mach ich jetzt das auf input type sell 2 % abgezogen werden ? :)
Also Du hast einen Multiplikator. Wenn Du 2% abziehen willst, dann ist das ja ein x - 0,2 x = (1-0,2) x = 0,98 x
Wenn x nun multiplier ist, dann könntest du das im Aufruf z.B. berücksichtigen: Statt 8 wären das dann z.B. 8 * 0,98 = 7,84.
 
K

kneitzel

Gast
Du hast Doch die Aufrufe, die du in oninput="..." gesetzt hast. Und da ist ein Parameter der multiplier. also das, was bei dir so komplex geworden ist:
<?echo number_format($exchange_to['prices'], 9, '.', '');?> / <?echo number_format($exchange_from['prices'], 9, '.', '');?>

Und da kannst Du natürlich auch noch weitere Operationen durchführen zusätzlich zu der Division, die Du da machst ...

Aber man könnte das auch lesbarer machen und z.B, weitere Parameter einführen oder so.

Da wäre aber mein genereller Tipp: Geh und lerne doch einfach einmal JavaScript. Dann verstehst Du auch Code, den Du bekommst und kannst diesen anpassen. Es gibt zu JavaScript genug Einführungen und so, die man im Netz problemlos mit der Suchmaschine deiner Wahl finden kann.
 

Jebote

Mitglied
ich benötige diese Funktion aber in Javascript Javascript lernen? ich bin erst im Anfang :D mein Programmierer meldet sich nicht mehr und ich diese Funktion dringend brauche beschäftige ich mich damit :) könntest du mir bitte erklären wie ich jetzt im script - 2 prozent mache danke voraus :)
 
K

kneitzel

Gast
Ich habe es Dir doch erläutert. 2% Abziehen ist eine Multiplikation mit 0,98. Und wenn Du das direkt im der Methode machen willst, dann baust es direkt in die Methode ein. Wo ist das Problem?

Wenn Du den Code bisher nicht nachvollziehen kannst, dann solltest Du Dir das auf jeden fall erarbeiten, sprich: Wie wird eine Funktion in JavaScript geschrieben, wie läuft das mit Parametern, wie werden Variablen benutzt u.s.w.
 

Jebote

Mitglied
ok ich hab es mit der o´beren methode gelöst :) ich hab noch ein anliegen wie füge ich diese Funktionen noch hinzu?
also bei klick auf Button soll es die summe in input type amount sell einfügen



<script>
document.getElementById('btn').addEventListener("click", function(){
inhalt=document.getElementById('amount').innerHTML;
document.getElementById('amount_sell').value=inhalt;
});
</script>


Vielen lieben dank top Forum :)
 

Ähnliche Java Themen


Oben