Wert aus js Funktion an input/form übergeben


rernanded

Erfahrenes Mitglied
Wie kann ich einen Wert aus einer js Funktion "nextUrl()" an ein input Feld (name="url" id ="url") in einer Form übergeben?
MONI
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="100" name="url" id="url" value="">

...

      
var count = -1;
      var i = document.getElementById('frame');
      var c = document.getElementById('cycle');
      var u = document.getElementById('url');
  
      function nextUrl() {
        url = urlArray[++count];
        count = (count >= urlArray.length - 1)? -1 : count;
        return url;
}

        c.onclick = function(){
        c.disabled = true;
        u.innerHTML = '';
        i.src = nextUrl();
        i.onload = function(){
        u.innerHTML = i.src;
        c.disabled = false;
 
Zuletzt bearbeitet:

Sempervivum

Erfahrenes Mitglied
Sehr einfach:
Code:
      var count = -1;
      var i = document.getElementById('frame');
      var c = document.getElementById('cycle');
      var u = document.getElementById('url');
 
      function nextUrl() {
           url = urlArray[++count];
           count = (count >= urlArray.length - 1)? -1 : count;
           return url;
      }

        c.onclick = function(){
            var url = nextUrl();
            c.disabled = true;
            u.innerHTML = '';
            i.src = url;
            u.value = url;
            i.onload = function(){
                u.innerHTML = i.src;
                c.disabled = false;
Meine Empfehlung: Besser aussagefähige Namen mit mehr als einem Buchstaben verwenden, das erleichtert Außenstehenden (und u. U. auch dir, wenn mal einige Zeit verstrichen ist) das Lesen.
 

Sempervivum

Erfahrenes Mitglied
Ich hätte das Neue etwas kennzeichnen sollen:
Code:
        c.onclick = function(){
            // da nextUrl() nicht mehrfach aufgerufen werden darf,
            // speichern wir das Ergebnis in einer Variablen:
            var url = nextUrl();
            c.disabled = true;
            u.innerHTML = '';
            i.src = url;
            // hier weisen wir dem Eingabefeld die URL als value zu:
            u.value = url;
            i.onload = function(){
                u.innerHTML = i.src;
                c.disabled = false;
Ich hoffe jedenfalls, das ist das, was Du vorhattest.
 

rernanded

Erfahrenes Mitglied
@Sempervivum: Alles gut. Danke. Hab die 2. Zeile auch entdeckt.
Ginge es auch dass ich den Wert aus dem js nicht in das input auf der selben Seite, sondern in ein input auf einer anderen Seite übertrage?
So siehts jetzt aus und funktioniert:
PHP:
<input type="text" size="100" name="url" id="url" value="<?php echo $url; ?>">
 

Sempervivum

Erfahrenes Mitglied
Nicht so ohne weiteres, dann stellt sich die Frage, wie Du an die andere Seite heran kommst. Zunächst mal gibt es da nämlich keine Verbindung.
1. Möglichkeit, wenn Du die andere Seite nach der Ermittlung des Wertes öffnest: Den Wert als URl-Parameter übergeben: var andereUrl = 'https://domain.de/deine-andere-seite.html?url=' + url;
2. Möglichkeit, indem Du die andere Seite mit window.open() öffnest, dann hast du mit Javascript in beiden Richtungen Zugriff auf die jeweils andere Seite.