2017-05-02 2 views
0

Ich habe JavaScript verwendet, um Daten aus einer Datei in ein Array zu verwandeln. Ich möchte nun die Eingabe von einem Formular verwenden, um dieses Array mit PHP zu durchsuchen und die Ergebnisse in einer Tabelle anzuzeigen. Ich habe viele Beiträge gelesen, die ähnliche Lösungen bieten, bin mir aber nicht sicher, wie es weitergehen soll.Übergabe eines Javascript-Arrays in PHP

Ich habe meinen Code mit dem Vorschlag von @Kevin_Kinsey

geschrieben aktualisiert

I Ajax mit POST bin mit dem Array übergeben, wie dieser dann

function sendPhp(reports) { 
$.ajax({ 
    type: 'POST', 
    url: 'reports.php', 
    data: JSON.stringify(reports), 
    contentType: 'application/json', 
    dataType: 'json'   
}); 
} 

PHP ich dies mit um es in PHP zu empfangen

<?php 
$json = filter_input(INPUT_POST, "data", FILTER_SANITIZE_EMAIL); 
//replace FILTER_DEFAULT with appropriate filter flags, as tight as possible 

$dataObject = json_decode($json); 
$dataArray = json_decode($json, true); 
var_dump($json); 
?> 

meine Seite zeigt jetzt NULL in den Brauen Wenn Sie die get-Anfrage in der Konsole anzeigen, werden keine Daten empfangen.

Kann jemand bitte meinen Fehler aufzeigen? Ich verstehe nicht, warum die Daten nicht weitergegeben werden.

Dieses Bild zeigt die Konsole meine POST einzuloggen, die meine Array zeigen

ajax post

Dieses Bild zeigt das Konsolenprotokoll der GET auf meiner PHP-Seite, die leer ist.

get on php

+0

haben Sie versucht, nur dies zu tun? -> Daten: {Berichte: Berichte} –

+1

http://stackoverflow.com/questions/42634309/ajax-post-how-to-use-a-j-variable-in-php/42635488#42635488 –

+1

Versuchen Sie, Daten von die globale Variable "$ _POST" anstelle des Lesens aus dem Eingabestream. – Coldiary

Antwort

0
<?php 
    # get the data from POST, not stdin 
    $json = filter_input(INPUT_POST, "data", FILTER_DEFAULT); 
    //replace FILTER_DEFAULT with appropriate filter flags, as tight as possible 

    $dataObject = json_decode($json); 
    $dataArray = json_decode($json, true); 

Beachten Sie, dass es keine Sicherheit an seinem Platz ist hier, abgesehen von was auch immer FILTER_FLAGS Sie-Versuch einstellen können die Eingabe zu sanieren. Sie benötigen eine tokenbasierte Verifizierung für den Schutz vor XSS und sollten gründlich auf unerwartete Eingaben innerhalb des JSON testen, bevor Sie mit dem Rest Ihres PHP-Skripts/Handlers darauf reagieren und wahrscheinlich mehr Paranoia bezüglich der Sicherheit im Allgemeinen.

+0

Ich habe das versucht, aber ich bekomme es immer noch nicht auf der php-Seite – pedaars

+0

Wie heißt die Variable? Zeige dies in PHP mit "print_r ($ _ POST);" ... es scheint mir, dass Sie es "Daten" im AJAX-Aufruf nennen und erwarten, dass es "json" heißt, wenn es an PHP POST ist. Folgen Sie der Transaktion in Ihrem Debugger (was auch immer "Inspect Element" Ihnen in einem Browser gibt) und sehen Sie, was wirklich passiert. –

+0

wenn ich "print_r ($ _ POST);" Die php-Seite wird Array() anzeigen bedeutet, dass sie ein leeres Array empfängt, als ob ich {var_dump ($ _ POST); Es zeigt Array (0) {}? – pedaars

Verwandte Themen