2017-04-23 4 views
0

Ich verwende Ajax, um Daten an eine PHP-Seite zu senden, die MySQL abfragt und die Ergebnisse zurückgibt. Ich habe auf meiner Seite eine Variable, die den Fehlerwert enthält. Wenn ich jedoch var_dump ($ _ POST) sehe, sehe ich, dass die Variable ein Array ist.Wie dekodiere ich JSON-Array

Wenn ich manuell einen Wert in die Abfrage eingeben, werden Daten zurückgegeben. Verwenden Sie jedoch nicht meine $ dept var.

Wie dekodiere ich dieses Array, um die Variable für meine Abfrage verfügbar zu machen. Dank

Ajax Code

$.ajax({ 
    url: 'deptdata.php', 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    data: {dept: depts}, 
    dataType: "json", 
     success: function (data) { 
     console.log(data); 

    }, 
     error: function (data) { 

     alert('error'); 

     } 
     }); 

Beitrag in Firebug Tab

dept=DEMOBILL 

deptdata.php

<?php 

    $dept = $_POST['dept']; <--- array? 
    //open connection to mysql db 
    $connection = mysqli_connect("localhost","root","","sample") or die("Error " . mysqli_error($connection)); 

    //fetch table rows from mysql db 
    $sql = "select custref from boxes where department = '".$dept."' and status = 1"; 
    $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection)); 

    //create an array 
    $emparray = array(); 
    while($row = mysqli_fetch_assoc($result)) 
    { 
     $emparray[] = $row; 
    } 
    echo json_encode($emparray); 

    //close the db connection 
    mysqli_close($connection); 
?> 
+0

Sie zu mysql Injektion offen sind, dann schauen Sie in [hergestellt Aussagen] (http://php.net/manual/en/mysqli.quickstart.prepared- Statements.php). – Nytrix

+0

Sie scheinen keine JSON zu senden und sollten dies nicht tun müssen. Nicht sicher, warum Sie 'contentType' dafür setzen. Zeigen Sie, wie 'depts' definiert ist – charlietfl

+0

Nur auf lokalen, also keine Notwendigkeit für securty, bis es live geht – user1532468

Antwort

1
$myArray = json_decode($data, true); 

echo $myArray[0]['id']; // Fetches the first ID 
echo $myArray[0]['c_name']; // Fetches the first c_name 
// ... 
echo $myArray[2]['id']; // Fetches the third ID 
// etc.. 

Wenn Sie als der zweite Parameter nicht wahr passieren zu json_decod e sie es stattdessen als Objekt zurückkehren würde:

echo $myArray[0]->id; 
+0

Was sind '$ Daten'? – charlietfl

+0

json daten .. !! $ data = json_decode ($ json, true); echo $ data [0] ["name"]; // "Rishii" $ data = json_decode ($ json); echo $ data [0] -> name; // "Rishii" –

+0

, aber es gibt keinen JSON in der Anfrage-Payload, der in der Frage – charlietfl

Verwandte Themen