Domanda

Ciao ragazzi, sto lavorando su un -Updater "status". Funziona, c'è solo un problema, dopo l'invio di uno Stato devo ricarica manuale di pagina per lasciare di nuovo il lavoro script. Tu mi puoi aiutare per favore? Ecco il codice:

<script language="javascript">
$(document).ready(function(){
    $("form#status_form").submit(function(){
        var s_autor =   $('#s_autor').attr('value');
        var s_status    =   $('#s_status').attr('value');
        $.ajax({
            type: "POST",
            url: "/admin/request.php",
            data: "s_autor="+ s_autor +"& s_status="+ s_status,
            success: function(){
                $('#show').load("/admin/request.php").fadeIn("slow", function(){
                    setTimeout(function(){
                        $(function() {
                             $("#show").fadeTo("slow", 0.01, function(){
                                 $(this).slideUp("slow", function() {
                                     $(this).remove();
                                 });
                             });
                        });
                    }, 2000);
                });
            },
        });
        return false;
    });
});
</script>

Quindi, sai come codice per renderlo possibile ripetere il copione quanto spesso si fa clic sul pulsante di invio?

A proposito, ecco il codice HTML-Form:

<form id="status_form" method="post" action="request.php" onsubmit="return false;">
    <input type="text" id="s_autor" name="s_autor" value="<?= $user_id; ?>" style="display: none;" /><input type="text" id="s_status" name="s_status" value="Statusnachricht" /><input type="submit" value="" class="submit" id="status_submit" />
</form>
È stato utile?

Soluzione

Sembra che dopo il primo tempo di chiamata di questo codice, state distruggendo #show, e, quindi, la prossima volta, non c'è più #SHOW? Ho intenzione di aggiungere alcuni commenti al codice per vedere se sto comprensione correttamente questo:

success: function() {
    // File has been successfully posted to request.php
    // We are now going to GET the contents of request.php (ignoring any response from the previous POST)
    // Also note, should probably put remainder of code in a callback to "load", so we can be sure it has had a chance to load!...
    $('#show').load("/admin/request.php").fadeIn("slow", function(){
        setTimeout(function(){
            $(function() {
                 $("#show").fadeTo("slow", 0.01, function(){
                     $(this).slideUp("slow", function() {
                         // Note! #show is being removed from the document here. It won't be available for future events.
                         $(this).remove();
                     });
                 });
            });
        }, 2000);
    });
},

In bocca al lupo!

Modifica Al momento guardando questo un po ', ho notato che si sta creando un documento evento "pronto" dopo la vostra setTimeout?

Sto cercando di capire l'effetto desiderato. Sembra che si vuole avere qualcosa di dissolvenza in dopo le finiture di upload (nel div #show), attendere qualche secondo, poi svanire fuori di nuovo? (Il vostro slideUp agisce su un elemento sbiadita-out, quindi l'effetto non sarà visto.)

Che ne dite di qualcosa di simile?

success: function() {
    // File has been successfully posted to request.php
    // We are now going to GET the contents of request.php (ignoring any response from the previous POST)
    $('#show').load("/admin/request.php", function() {
        $(this).fadeIn("slow", function() {
            setTimeout(function() {

                $("#show").fadeOut("slow", function() {
                    // don't remove #show. Just empty it for using again next time.
                    $(this).empty()
                });

            }, 2000);
        });
    }); 
},
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top