2010-11-22 7 views

risposta

12

Supponendo che ciò che intendete è che volete che un avviso compaia dal browser quando il server raggiunge un certo punto del vostro codice php, la risposta è "no".

Mentre sul server è in esecuzione il codice php, non c'è alcun contatto con il browser (finché la risposta non inizia a tornare). Esistono situazioni in cui un server può eseguire lo streaming di contenuti di nuovo al browser e in tal caso sarebbe possibile avere una convenzione concordata per il server per contrassegnare il flusso di contenuti con messaggi da avvisare immediatamente, ma Non penso che sia quello che stai chiedendo qui.

+0

Ecco cosa intendevo, sì. Grazie! –

+0

Quindi dovresti selezionarlo come risposta corretta :) – cgp

+0

Ma c'erano alcune risposte che dicevano che era possibile! O non l'ho capito correttamente? –

0

Sì, se si invia codice JavaScript con alert in una pagina HTML da PHP.

No, se si desidera chiamare alert semplicemente eseguendo il codice lato server e non inviando JS al browser client.

+0

come posso farlo? –

+0

@Ahmad: vedere la risposta di Rhapsody – darioo

+0

Il codice HTML della risposta può contenere codice JavaScript che genera un avviso, ma non verrà visualizzato l'avviso fino a molto tempo dopo il completamento del codice php. – Pointy

6

Sì, è possibile.

echo "<script>alert (\"js inside php\")</script>"; 
+5

oh oh! nessuno ha chiesto più contesto o spiegazione. Commento errato: D – atlavis

3

Per spiegare; PHP è compilato sul server e il risultato è semplice HTML. Pertanto gli avvisi e tali non possono apparire durante la compilazione è un processo silenzioso.

Se si desidera mostrare un avviso nel codice HTML generato da PHP;

<?php 
    echo '<script type="text/javascript"> alert(\'Hi\'); </script> 
?> 
0
echo "<script type='text/javascript'>alert('alert text goes here');</script>"; 

Ma non so come possa essere utile perché funziona solo sul lato client. Se vuoi eseguire il debug del tuo codice, puoi semplicemente stamparlo sullo schermo, ma se usi l'avviso prenditi cura delle citazioni perché possono rompere la parte javascript.

0

È possibile emettere un avviso Javascript() all'interno di una funzione PHP in almeno due modi:

a) la restituzione è:

function sendAlert($text) { 
    return "<script type='text/javascript'>alert('{$text}');</script>"; 
} 

B: uscita direttamente:

function echoAlert($text) { 
    echo "<script type='text/javascript'>alert('{$text}');</script>"; 
} 
21

Sì, è possibile, anche se I 100% di garanzia questo non è quello che vuoi o cosa intendi:

<?php 
    function do_alert($msg) 
    { 
     echo '<script type="text/javascript">alert("' . $msg . '"); </script>'; 
    } 
?> 
<html><head><title>Hello</title></head> 
<body> 
<h1>Hello World, THis is my page</h1> 
<?php 
    do_alert("Hello"); 
?> 
</body> 
</html> 

Il browser esegue Javascript, il server esegue il PHP.

È anche possibile eseguire il comando di eco Javascript dal server (senza HTML) e quindi includere tale script nella pagina creando dinamicamente un tag <script> contenente tale Javascript. Questo essenzialmente sta creando Javascript al volo per l'iniezione nella tua pagina con le intestazioni giuste, ecc.

Se si desidera tracciare alcune esecuzione di script PHP, quindi è possibile utilizzare trigger_error() per creare una voce di registro, o si potrebbe scrivere una funzione trace() per memorizzare le stringhe in un buffer e aggiungerli a una pagina.

Se si desidera tracciare Javascript, vedere Firebug per Firefox.

PHP Headers API Documentation
On-demand Javascript at Ajax Patterns

+0

Esiste un codice javascript che chiama un altro codice PHP in un altro file. Voglio tracciare questo codice PHP e vederlo mentre è in esecuzione. Questo è ciò che voglio io. Questa idea sembra corretta? –

+0

No, la richiesta Ajax restituirà solo il risultato finale e nulla tra (se stai pensando di avvisare in diverse fasi) – SW4

+0

Javascript non può chiamare direttamente PHP, Javascript può solo richiamare PHP tramite un URL. –

Problemi correlati