Mit Javascript prüfen ob Datei erstellt wurde

Verzeihe mir, dass ich das Thema hier in den letzten Tagen übersehen habe.
HTML:
<form method="post" action="" id="form-avatar-generator">
  <fieldset>
    <input type="text" name="input01" />
    <input type="text" name="input02" />
    <!-- ... -->
    <input type="text" name="input05" />
    <input type="checkbox" name="option01" />
    <input type="checkbox" name="option02" />
    <!-- ... -->
    <input type="checkbox" name="option15" />
  </fieldset>
</form>
<div id="wait">Bitte warten ...</div>
Code:
$(document).ready(function ()
{
  var filename = '';
  $('#form-avatar-generator').submit(function (e)
  {
    e.preventDefault();
    $('#wait').css('display', 'block');
    $.post('/images/ava/create-avatar.php', $(this).serialize(), function (data)
    {
      filename = data;
    });
    return false;
  });
  var interval = window.setInterval(function ()
  {
    $.post('/images/ava/avatar-exists.php', { filename: filename }, function (data)
    {
      if(data == 1)
      {
        $('#wait').css('display', 'none');
        window.clearInterval(interval);
      }
    });
  }, 1000);
});
Anmerkungen: Du brauchst dafür jQuery (ein Javascript-Framework, das du einbinden musst), außerdem könnte es sein, dass deine Skripte in einem Verzeichnis liegen, auf das man als Client nicht zugreifen kann. Das musst du natürlich ändern, denn sonst funktioniert das Ganze nicht. Dann sollte deine "create-avatar.php" den Namen des erstellten oder zu erstellenden Bildes ausgeben. Das ist deshalb wichtig, da in meinem Beispiel die Daten per AJAX an dein Skript geschickt werden und somit die eigentliche Seite nicht neugeladen wird.
 
Hallo.

Geht es nicht evtl. ne Ecke einfacher?

Denn es muss jetzt nicht mehr geprüft werden ob die Grafik fertig konvertiert wurde. Denn das Skript läuft jetzt ohne andere Skripts.

Eigentlich bräuchte ich jetzt nur einen "Bitte warten!" Text wenn man auf Submit klickt der aber wieder ausgeblendet wird, wenn das Skript fertig ist.
 
Einfacher? Meine Variante ist sehr einfach. Du solltest dir mal ansehen, wie sonst Javascript-Skripte aussehen, dann wirst du einsehen, dass 25 Zeilen Javascript schon recht schlicht sind.
 
Ja ich verstehe. Nur ist es ja jetzt etwas anders. Das Skript ist umprogrammiert und es wid nicht mehr geprüft ob die Grafik erstellt wurde.

Da das Skript aber erwas länger braucht, möchte ich mit drücken auf den Submit-Button einen Text anzeigen lassen der wieder ausgeblendet wid, wenn das Skript fertig ist.

Kannst Du mir dabei helfen?
 
In diesem Fall musst du auch überprüfen, ob die Grafik erstellt wurde, da du sonst keine Möglichkeit hast zu erkennen, ob das Skript beendet wurde. Ansonsten musst du einfach das value-Attribut der Schaltfläche ändern.
 
Wie soll ich es denn nun machen?

Klick auf den Submit-Button -> Bitte warten! wird eingeblendet
Skript ende -> Bitte warten! wird ausgeblendet
 
Zur Bücherei gehen, ein AJAX Buch ausleihen, oder eins bei amazon etc. bestellen.

Prüfe einfach alle x Sekunden per AJAX ob das Script fertig ist, und wenn ja, lasse es wieder ausblenden. Das ein/ausblenden gehört mit zu den Grundlagen und ist mit einem Framework wie JQuery wirklich alles andere als schwierig. Auch bei Google wird es dazu sehr viele Beispiele geben.
 
Hallo Zusammen. :)

Ich habe mittlerweile folgendes ausprobiert.

HTML:
   <div id="loader" style="display:none;">
      Bitte warten!
   </div>

HTML:
<input type="submit" name="senden" onclick="show_elements('loader')" value="Submit" />

Es geht? Aber wieso? Sobald das Skript fertig ist, wird das "Bitte warten!" ohne extra Anweisung ausgeblendet.

Aber so einfach kann es doch nicht sein?
 

Neue Beiträge

Zurück