Ich habe ein PHP-Skript, das Namen (Strings) aus der Datenbank abruft. Ich möchte dieses Array mit $ .ajax() an Javascript übergeben. Ich kann nicht verstehen, wie ich das Array in PHP kodieren und dann in Javascript decodieren soll. Kann jemand einen Beispielcode dafür geben? Vielen Dank !!
Antwort
<?php // test.php
$myArray = array(1, 2, 3);
echo json_encode($myArray);
?>
Datei
HTML:
$(function() {
$.getJSON('http://localhost/test.php', function(data) {
$(data).each(function(key, value) {
// Will alert 1, 2 and 3
alert(value);
});
});
});
kann u json_encode
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
vollständiges Beispiel verwenden, können Sie lesen unter:
http://www.prodevtips.com/2008/08/15/jquery-json-with-php-json_encode-and-json_decode/
oder
http://www.prodevtips.com/2009/12/09/multiple-select-lists-with-jquery-and-json/
Um dies zu tun, werden Sie müssen nur ein Skript in die PHP-Seite echo, die Ihre Daten enthält, die Sie dann von jedem anderen Javascript auf der Seite zugreifen können, einschließlich jQuery und .ajax().
Auch wenn Sie es nur über einen AJAX-Aufruf übergeben möchten, verwenden Sie einfach json_encode():
<?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>
Und es dann mit den Callback-Funktionen verarbeiten von .ajax()
oder, wahrscheinlich besser, .getJSON()
, das ist nur für diesen Zweck gebaut.
Ich verspreche, ich spam nicht nur mein Blog hier, aber ich schrieb einen Beitrag auf passing variables between Javascript and PHP, weil ich es oft genug gemacht habe, dass ich mit einer einfachen/zuverlässigen/sauberen und wiederverwendbaren Weg kam, um dies zu tun. Wenn Sie regelmäßig Daten von PHP an Javascript übergeben und AJAX nicht benötigen, füge ich hier die wesentlichen Elemente ein:
Am Anfang jeder externen js-Datei füge ich Kommentare hinzu, welche PHP-Variablen benötigt werden. ich kann so zu verfolgen, was ich brauche, wenn ich schließe es (das ist optional, natürlich, aber schön):
/* This script depends on the following variables in phpvars:
groupidlist
groupnamelist
serverurl
uid
*/
Dann wird in der PHP-Datei, gebe ich die benötigten Variablen mit einer einzigen Zeile Javascript ein JSON-Array mit allen erforderlichen Werten zuweisen. Beispiele in PHP, direkt von meinem Code:
<script type="text/javascript">
var phpvars = <?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>;
</script>
Sobald die eingerichtet ist, dann kann ich zugreifen einfach, was PHP-Variablen I in der Javascript muß durch die phpvars
Array. Zum Beispiel, wenn ich eine Bildquelle mit meinem serverURL zu setzen brauchte, was ich tun konnte wie folgt:
imgElement.src = phpvars.serverurl + '/images/example.png';
Weil es JSON verwendet, gibt es keine Sorgen darum, sicherzustellen, dass Sie nichts tun vermasseln in Ihrem Javascript, indem versucht wird, die PHP-Variablen einzufügen. Die Kodierung/Dekodierung der Variablen wird an beiden Enden durch eingebaute JSON-Funktionen gehandhabt, so dass es sehr schwierig ist, sie zu durchbrechen, und hirnlos Variablen zu übergeben - Sie übergeben sie wie jedes andere PHP-Array. In meiner Fummelei, die dazu führte, hatte ich Probleme mit beiden, und diese Lösung kümmert sich gut um sie.
<?php
echo json_encode(array('key' => 'value', 'cool' => 'ice'));
?>
json ist ein JavaScript-Objekt. Es besteht also keine Notwendigkeit, es zu "dekodieren". Es sieht jedoch so aus, als ob Sie jQuery verwenden. Es ist eine nette Funktion für das Abrufen von JSON-Daten:
jQuery.getJSON(url, senddata, function(returndata){alert(returndata.cool);})
oder
jQuery.getJSON(url, senddata, function(returndata){mybigfunction(returndata);})
mybigfunction(data)
{
myvar = data.cool;
alert(myvar);
}
http://api.jquery.com/jQuery.getJSON/
oder Sie können es auch tun, mit $ Schnipsel, wie Sie erwähnt:
jQuery.ajax({
url: url,
dataType: 'json',
data: senddata,
success: function(data){mybigfunction(data)}
});
mybigfunction(data)
{
myvar = data.cool;
alert(myvar);
}
http://api.jquery.com/jQuery.ajax/
Der "Rückruf" ist eine Funktion, die die von der URL zurückgegebenen JSON-Daten aufruft und weiterleitet.
Sie werden 'Eis' Baby ... ermm ... Entschuldigung für den Mais.
Die getJSON-Methode ist eher kurz und handlich. Sehen Sie sich die Links für weitere Details an.
Wenn ich 'echo json_encode (Array ('Hallo', 'Welt', '!'));' In PHP, wie konnte ich einfügen dieses Array in Javascript Variable 'arr', so dass 'arr [0] == "Hallo"? –
siehe den jquery Code, den ich geschrieben habe, so. Das ist der Anruf und die Rückgabedaten alle dort. Manchmal möchten Sie große Dinge mit den Daten tun, so und Inline-Funktion ist ein Schmerz. Also werde ich meine Antwort aktualisieren –
Ich kann sehen, dass Sie Arrays verwendet werden. In Javascrip ist ein Array nur eine andere Art von Objekt. Mit dem "." Können Sie auf alle Eigenschaften und Methoden eines Objekts zugreifen. In meinem Beispiel sehen Sie data = array ('cool' => 'ice') wird data.cool = ice. Wenn Sie es stattdessen wirklich in einem Array möchten, müssen Sie das Objekt mit einem for oder while überlappen. –
Dies ist Php Datei-Code
<?php
$array = array(1, 2, 3);
echo json_encode($array);
?>
Dann Sie $array
in Ihrem $.ajax()
wie diese
success: function (data) {
var x = JSON.parse(data);
console.log(x);
}
- 1. Wie übergibt man ein Array von Strings an eine Funktion?
- 2. Wie übergibt man ein Array an jQuery $ .ajax?
- 3. Wie übergibt man ein Array von C# -Funktion an VBA?
- 4. Wie übergibt man ein Blob-Objekt von Javascript an Android?
- 5. Wie übergibt man Variablen von C# an Javascript?
- 6. Ajax übergibt Array nicht an Controller Action?
- 7. Wie übergibt man AJAX vars von jQuery an ihren Controller?
- 8. Wie übergibt man Variablen von der While-Schleife von PHP an JavaScript?
- 9. Übergabe von JavaScript-Array an PHP über jQuery $ .ajax
- 10. AJAX übergibt keine Werte an PHP
- 11. Wie übergibt man ein String-Array von Javascript an asp.net Webservice?
- 12. Wie übergibt man ein Objekt von einem windowSWF an JSFL?
- 13. Wie übergibt man ausgewählte Datei mit jQuery an PHP-Skript?
- 14. Wie übergibt man jede ID von JSP an JavaScript?
- 15. Wie übergibt man ein Array und ein einzelnes Element an eine Methode mit mehreren Argumenten?
- 16. Ajax übergibt die Parameter nicht an PHP
- 17. PHP & Codeigniter - Wie übergibt man Parameter an ein Modell?
- 18. Wie konvertiert man ein Array von Strings in ein Array von Symbolen?
- 19. AJAX-JSON-Aufruf Rückgabe Array von Strings anstelle von Objekten
- 20. Wie übergibt man ein Klassenobjekt von Scala an Java?
- 21. Wie übergibt man ein std :: array?
- 22. Ajax und PHP - Senden von Javascript-Array zu PHP
- 23. Passing Array von Strings von C# JavaScript
- 24. Get Array von Strings zwischen zwei Strings mit Javascript
- 25. Wie übergibt man ein Array an ein Perl-CGI-Skript mit einem HTML-Formular?
- 26. Wie übergibt man eine sehr lange Zeichenfolge von js an php mit einer Postanforderung?
- 27. Laravel übergibt Daten mit Ajax an Controller
- 28. JavaScript Pass-Array von Strings Ausgabe
- 29. Wie man ein Array mit mehreren Mesh-Objekten übergibt
- 30. GET-Aufruf an PHP von Javascript OHNE Ajax
ja analysieren kann, er wollte auch wissen, wie die Daten zu verwenden, wurde zurückgegeben ... –