2015-05-27 18 views
5

Perché non funziona? Questa è la prima cosa che nel corpo:Come utilizzare un oggetto jQuery da php?

<?php 
    if(isset($_POST['submit'])){ 
     echo "<script>$('.classToShow').show();</script>"; 
    }else{ 
     echo "<script>$('.classToShow').show();</script>"; 
    } 
?> 

classToShow è un semplice div nel corpo. Non apparirà e la sua non a seconda della condizione booleana, deve essere il codice ...

Anche se questo funziona:

<?php 
    if(isset($_POST['submit'])){ 
     echo "<script>alert('works');</script>"; 
    }else{ 
     echo "<script>alert('works');</script>"; 
    } 
?> 

Così funziona il semplice JavaScript, ma il jQuery non lo fa ... Perchè è questo?

+1

Quali sono gli errori nella console Javascript? – Adon

+1

Provalo come "echo" ";' – Satpal

+0

Adon: Sono nuovo sia per JavaScript che per NetBeans, quindi non so dove guardare, NetBeans dà nessun messaggio di errore ... Satpal: ho dargli una prova – user3435407

risposta

5

Questo è il vostro problema:

Questa è la prima cosa nel corpo

A quel punto l'elemento con la classe di classToShow non esiste ancora, così non succede nulla. Dovresti aspettare che il DOM sia pronto prima di eseguire quel codice.

D'altra parte, se vuoi solo mostrare qualcosa quando è stata fatta una richiesta POST, puoi aggiungerla direttamente usando php e non hai bisogno di jQuery per farlo in seguito.

Una soluzione comune sarebbe quella di mostrare direttamente utilizzando PHP e quindi utilizzare javascript per nascondere il messaggio dopo un certo timeout.

+0

Vero, se la necessità di questo è così semplice come sembra, non è necessario utilizzare javascript per nasconderlo. Si può semplicemente utilizzare: '";? } ?> ' – Adon

+1

PEC, la tua risposta con il commento di Satpal è la soluzione! thx, stavo soffrendo con questo da un po '... – user3435407

+0

se posso chiedere, potrebbe indicare che cosa volevi dire dalla soluzione php? – user3435407

1

È possibile utilizzare $(document).ready() e dentro che scrivere il codice

Problemi correlati