2016-11-02 3 views
-1

Ich versuche herauszufinden, die beste Art und Weise, wie ich PHP-Variablen mit AJAX abrufen und dann diese Variablen in Javascript-Variablen.Wie PHP-Variablen in Javascript-Variablen

Sagen wir, ich habe folgendes in meinem PHP-Datei:

echo $total; 
echo $actual; 

Edit: JSON

echo json_encode($comments); 

Wie kann ich diese PHP-Variablen in JavaScript-Variablen innerhalb der AJAX-Aufruf drehen success: function (data) { oder gibt es ein besserer Weg, dies zu tun?

+0

Geben Sie JSON aus Ihrem PHP-Code zurück. Das resultierende deserialisierte JS-Objekt kann dann beide Werte enthalten. –

+0

Setzen Sie alles in ein Array/Objekt und geben Sie alles auf einmal mit 'json_encode()' zurück. Dann können Sie es einfach in Javascript parsen. – jeroen

+0

Verwenden Sie ein PHP-Framework? Ich kenne ein [Paket] (https://github.com/laracasts/PHP-Vars-To-Js-Transformer) für Laravel, das genau das tut. –

Antwort

1

Erstellen Sie ein Ergebnis-Array, das alle Variablen enthält, die Sie zurückgeben möchten. Codieren Sie das Ergebnis anstelle von $comments.

$result = array('total' => $total, 'actual' => $actual); 
echo json_encode($result); 

Im JavaScript, stellen Sie den Datentyp json und jQuery wird es automatisch analysieren, dann können Sie die Variablen als Eigenschaften des Erfolgs Argument zugreifen.

+0

Danke. Ich habe diese Antwort nie veröffentlicht. Arbeitete perfekt. – Paul

0

Sie müssen json_encode tun, indem Sie es manuell oder indem Sie Array dieser Variablen machen und es durch Ajax abrufen. Dadurch können Sie es zur Java-Script-Variable machen.

0

Sobald die Seite geladen wird, müssen Sie sie als globale Variablen deklarieren. Dies kann entweder unabhängig oder unter Verwendung des Fensterbereichs erfolgen.

<script> 
    // On page load 

    total = <?php echo $total; ?>; 
    actual = <?php echo $actual; ?>; 
    // OR 
    window.total = <?php echo $total; ?>; 
    window.actual = <?php echo $actual; ?>; 
    </script> 

Jetzt können Sie diese Variablen in den Erfolgsrückrufen verwenden.

0

Jemand hat bereits Json verwendet, also werde ich einen einfachen String-Separator verwenden. Copy-Paste nächste zwei Codes in zwei Dateien mit den angegebenen Namen, dann öffnen ajax1.php in Ihrem Browser:

ajax1.php

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
    <script type = "text/javascript"> 
var total; // JAVASCRIPT VARIABLE. 
var actual; // JAVASCRIPT VARIABLE. 
function myAjax() 
{ $.ajax({ url  : "ajax2.php", 
      success : function (data) 
         { var arr = data.split("^^"); // ◄■■ SEPARATE DATA RETURNED. 
         total = arr[0]; // FIRST VALUE. 
         actual = arr[1]; // SECOND VALUE. 
         alert(total); 
         alert(actual); 
         }, 
      error : function (xhr) 
         { alert("error"); 
         } 
     }); 
} 
    </script> 
    </head> 
    <body> 
    <button onclick="myAjax()">Click here</button> 
    </body> 
</html> 

ajax2.php

<?php 
$total = 450; 
$actual = 10; 
echo $total . "^^" . $actual; // "^^" IS THE SEPARATOR. ANYTHING CAN BE USED. 
?> 
Verwandte Themen