2013-08-06 20 views
5

EDIT: Meine Funktion wurde gebrochen, mit der /n drin. Danke woofmeow dafür, dass er mich dazu gebracht hat, meine Funktion in Frage zu stellen!Verwenden von PHP zum Laden von Javascript

Ich bin neu in der Programmierung. Ich habe mein Bestes gegeben und ich habe in den letzten Monaten viel gelernt (ein Haufen hier!), Aber ich bin ratlos.

Ich habe ein PHP-Skript, das von einem anderen PHP-Skript aufruft, und ich kann nicht den Code tatsächlich ausführen. Es lief früher, dann änderte ich einige Dinge und speicherte die Änderungen nicht, ich bin mir nicht sicher, was ich getan habe. Ich weiß, ich weiß, Anfängerfehler (ich habe daraus gelernt!). Das Javascript wird in der Seitenquelle angezeigt, läuft aber nicht mehr.

Hier ist die Seite Quelle ist, vielleicht ist es so einfach: Das show_users Skript sendet diese in den Viewer:

$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; 

Die PHP im HTML

<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> 

Hier ist die PHP ist wurde nicht geändert, als es funktionierte:

<?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; 
} 
?> 

Und schließlich, die Skript sehen, die uns unsere Seite Quelle gibt (Anmerkung: $ embedded_javascript ist $ delete_user_script):

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

Wenn ich die Maus über das Bild, um den Benutzer zu löschen, es zeigt immer noch den Link richtige Skript ("Javascript: DELETE_USER (% d) ", wobei% d die user_id ist, aber es ist so, als ob die Funktion nicht mehr definiert ist, nichts passiert. Irgendwelche Ideen werden sehr geschätzt! Vielen Dank!

+0

Ihre Misch php und js up. Eins ist Serverseite, das andere ist clientseitige –

+0

Konnte einen Live-Link oder einen Link zu einer Geige (http: // jsfiddle.net /), das den gerenderten Code zeigt - mit allem, was empfindlich aufleuchtet oder der gerenderte Code von View Source kopiert wurde. Ich persönlich kann mir das ganze Bild nicht so vorstellen. –

+0

Ich vermute, dass Sie Ihr Skript einfügen, um Ihre 'delete_user'-Funktion nach dem Skript zu definieren, das diese Funktion aufruft. Aber ich kann es nicht sagen ohne das Ganze zu sehen. Benutze phpfiddle, um uns zu zeigen, was du tust http://phpfiddle.org/ – deltree

Antwort

3

Grundsätzlich ist Ihre if Aussage falsch (auch in der $delete_user_script Variable). Da es auf einer neuen Zeile beginnt, wird der Interpreter eine ; am Ende davon annehmen und damit Ihre if Anweisung bricht.

Ihre Funktion hat dieses

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

es so sein sollte

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

Manchmal ist es nur ein Teeny Weeny Fehler. Hoffe, das hilft :)

EDIT 1: dies ein Fehler in der origianally gepostet Frage im war Javascript und PHP Code. Jetzt wurde es bearbeitet, um zu reflektieren, dass die if nicht kaputt ist. EDIT 2: Mir wurde gesagt, dass dies half, das Problem zu lösen, also werde ich diese Frage hier halten. Hoffe es hilft anderen auch. PS: Wenn jemand dies entfernt möchte, lass es mich wissen.

+0

Wie unterscheiden sich diese beiden Codebeispiele ?! –

+1

@ChuckUgwuh ist einer mit einem Zeilenumbruch und der andere nicht. In Javascript ist das Semikolon optional. Also nimmt man am Ende ein ";" an und bricht die Funktion. – woofmeow

+0

Danke, aber der Code ist tatsächlich 'Funktion delete_user (user_id) {if (confirm (" Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? "+" \ NEs gibt wirklich kein Zurück! ")) {Window.location =" delete_user .php? user_id = "+ user_id;}}' auf meiner Seite, ein einziger Satz. Also war das nicht der Trick (außer das ist auch falsch!). –

0

Versuchen Sie stattdessen, was Sie haben jetzt in Ihrem Skript:

$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; 
    } 
}"; 
Verwandte Themen