2013-08-06 21 views
5

MODIFICA: La mia funzione è stata interrotta, con il /n in esso. Grazie, grazie per avermi condotto a mettere in discussione la mia funzione!Utilizzo di PHP per caricare Javascript

Sono nuovo alla programmazione. Ho fatto del mio meglio e ho imparato molto negli ultimi mesi (un mucchio qui!) Ma sono perplesso.

Ho uno script PHP che chiama da un altro script PHP e non riesco a far funzionare il codice. Funzionava, poi ho cambiato alcune cose e non ho salvato le modifiche, non sono sicuro di quello che ho fatto. Lo so, lo so, errore da principiante (ho imparato da questo!). Il Javascript si presenta bene nell'origine della pagina di visualizzazione ma non viene più eseguito.

Ecco la sorgente della pagina, forse è così semplice:

<script type="text/javascript"> 
function delete_user(user_id) 
{if (confirm("Are you sure you want to delete this user?" + "\nThere's really no going back!")) {window.location = "delete_user.php?user_id=" + user_id;}}</script> 

Ecco il PHP: Lo script show_users invia questo nel programma di visualizzazione:

$delete_user_script = <<<EOD 
function delete_user(user_id) 
{ 
    if (confirm("Are you sure you want to delete this user?" 
       + "\nThere's really no going back!")) 
    { 
     window.location = "delete_user.php?user_id=" + user_id; 
    } 
} 
EOD; 

Il PHP nel codice HTML NON è stato modificato da quando funzionava:

<?php 
while ($user = mysql_fetch_array($result)) 
{ 
    $user_row = sprintf("<li><a href='show_user.php?user_id=%d'>%s %s</a>(<a href='mailto:%s'>%s</a>)<a href='javascript:delete_user(%d);'><img class='delete_user' src='../images/delete.png' width='15' /></a></li>", 
    $user['user_id'], 
    $user['first_name'], 
    $user['last_name'], 
    $user['email'], 
    $user['email'], 
    $user['user_id']); 

    echo $user_row; 
} 
?> 

E infine, il la visualizzazione di script che ci dà la nostra sorgente della pagina (Nota: $ embedded_javascript è $ delete_user_script):

if (!is_null($embedded_javascript)) 
{ 
    echo '<script type="text/javascript">' . $embedded_javascript . '</script>'; 
} 

Quando il mouse sopra l'immagine per eliminare l'utente, mostra ancora il link corretto sceneggiatura ("javascript: DELETE_USER (% d) ", dove% d è l'id_utente) ma è come se la funzione non fosse più definita, non succede nulla. Qualsiasi idea è molto apprezzata! Grazie!

+0

tua miscelazione php e js up. uno è lato server, l'altro lato client –

+0

Potrebbe pubblicare un collegamento live o un collegamento a un violino (http: // jsfiddle.net /) che mostra il codice sottoposto a rendering - con qualsiasi cosa sensibile al bleeping, o il codice reso copiato da View Source. Personalmente non riesco a visualizzare l'intera immagine in questo modo. –

+0

Sospetto che tu stia inserendo il tuo script per definire la funzione 'delete_user' dopo lo script che chiama quella funzione. Ma non posso dirlo senza vedere tutto. Usa phpfiddle per mostrarci cosa stai facendo http://phpfiddle.org/ – deltree

risposta

3

Fondamentalmente l'istruzione if è errata (anche nella variabile $delete_user_script). Poiché sta iniziando su una nuova riga, l'interprete assumerà uno ; alla fine e quindi le sue interruzioni di istruzione if.

La funzione ha questo

if (confirm("Are you sure you want to delete this user?" 
       + "\nThere's really no going back!"))

dovrebbe essere in questo modo

if (confirm("Are you sure you want to delete this user?" + "\nThere's really no going back!"))

A volte è solo un errore weeny teeny. Speranza che aiuta :)

EDIT 1: questo è stato un errore nella domanda origianally pubblicato nel javascript e php codice. Ora è stato modificato per riflettere che lo if non è rotto. EDIT 2: Mi è stato detto che questo ha aiutato a risolvere il problema, quindi terrò questa domanda qui. Spero che aiuti anche gli altri. PS: Se qualcuno vuole questo rimosso fammi sapere.

+0

In che modo questi due esempi di codice sono diversi ?! –

+1

@ChuckUgwuh uno è con un interruzione di riga e l'altro no. In javascript il punto e virgola è facoltativo. Quindi assumendo un ";" alla fine e rompendo la funzione. – woofmeow

+0

Grazie, ma il codice è in realtà 'function delete_user (user_id) {if (conferma (" Sei sicuro di voler eliminare questo utente? "+" \ NNon è davvero possibile tornare indietro! ")) {Window.location =" delete_user .php? user_id = "+ user_id;}}' nella mia pagina, tutta una frase. Quindi tat non era il trucco (a meno che non sia sbagliato!). –

0

Prova questa, invece di quello che hai ora nello script:

$delete_user_script = "". 
"function delete_user(user_id) 
{ 
    if (confirm(\"Are you sure you want to delete this user?\" + \"\\nThere's really no going back!\")) 
    { 
     window.location = \"delete_user.php?user_id=\" + user_id; 
    } 
}"; 
Problemi correlati