2017-10-26 1 views
0

Ich versuche, eine Warnung als Test anzuzeigen, aber ich kann es nicht funktionieren. Auf der HTML-Seite, ich habe:PHP Alarm wird nicht angezeigt

<body onload="DBReadNews()"> 
...code 
<script src="jquery.js"></script> 
<script src="myJs.js"></script> 

Javascript:

function DBReadNews(){ 
    $.ajax({ 
     type: "POST", 
     url: "newsPhpRead.php", 
     datatype: "text", 
     success: function() { 
     } 
    }); 
} 

PHP:

<?php 
    echo "<script language='javascript'>alert('test!');</script>"; 
?> 
+4

Erstens tun Sie nichts mit dem HTML, das Sie im PHP-Code an die AJAX-Anfrage zurückgeben, und zweitens, selbst wenn Sie es getan hätten, würde es nicht angezeigt, da das Skript nicht so ausgeführt wird. Wenn Sie nach Abschluss des Aufrufs ein 'alert()' anzeigen möchten, fügen Sie es einfach direkt in die 'success' Handler-Funktion ein. –

+0

Vielen Dank für die Antwort. – zaa

+0

Auch 'language = 'javascript' ist aus dem Jahr 1995, entfernen Sie es einfach. – Martijn

Antwort

0

Sie können nicht eine Warnung wie das Echo. Sie müssen es so in Ihren Erfolgsmanager einfügen.

function DBReadNews(){ 
$.ajax({ 
    type: "POST", 
    url: "newsPhpRead.php", 
    datatype: "text", 
    success: function() { 
     alert('Test!'); 
    } 
}); 
} 
2

Es ist, weil Sie nicht mit der Antwort vom Server beschäftigen. Versuchen Sie es auf diese Weise:

function DBReadNews(){ 
    $.ajax({ 
     type: "POST", 
     url: "newsPhpRead.php", 
     datatype: "text", 
     success: function(server_response){ 
      alert(server_response); 
     } 
    }); 
} 

und PHP-Skript ändern:

<?php 
    echo "test"; 
?> 
0

Die bereitgestellten Antworten nur funktionieren, wenn Sie einen reinen Inhalte aus dem Ajax-Aufruf zurück. Mit meiner Lösung können Sie jeden JavaScript-Code ausführen, der in der Antwort zurückgegeben wird.

Das Problem ist, dass die Antwort vom Server nicht verwendet wird.

Datei: index.html

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body onload="DBReadNews()"> 
    <script src="http://code.jquery.com/jquery-3.2.1.min.js"></script> 
    <script src="myjs.js"></script> 
</body> 

Datei: myjs.js

function DBReadNews(){ 
    $.ajax({ 
     type: "POST", 
     url: "newsphpread.php", 
     datatype: "text", 
     success: function(response) { 
      $('body').prepend(response); 
     } 
    }); 
} 

Datei Stattdessen sollte es im DOM wie folgt injiziert: newsphpread.php

<?php echo "<script>alert('test!');</script>"; ?> 

Wenn index.html im Browser geöffnet wird, wird eine Anforderung an AJAX newsphpread.php gesendet. Die Antwort dieser Anfrage wird in die und die alert() (oder andere Javascript-Code) wird ausgeführt.

Hinweis: ///var/www/alert.html: Dies sollte auf einem Webserver ausgeführt werden, das heißt, die Indexdatei zu arbeiten, soll über http http://localhost/index.html und nicht als Datei Datei zugegriffen werden. Wenn index.html mit file: // geöffnet wird, erhalten Sie einen Fehler in der Konsole "Kreuzursprungsanforderungen werden nur für Protokollschemas unterstützt: http, data, chrome, chrome-extension, https."