2016-10-12 2 views
-2

Ich weiß, dass dies schon einmal gefragt wurde, aber ich kann keine Lösungen zur Arbeit bekommen. Ich habe eine js-Array, wie dies in der Konsole aussieht: -Warum wird dieses Javascript-Array nicht an PHP übergeben?

[] 
    0:Object 
    stock:27 
    createdtime:"2016-04-08T04:00:00+0000" 
    id:"693852404037393999" 
    units:438 
    1:Object 
    stock:17 
    createdtime:"2016-04-04T07:00:00+0000" 
    id:"341884943444989396" 
    units:267 

Der Code dieses Array zu erstellen, sieht wie folgt aus: -

var allstock = { 
     pdata: [] 
    }; 

     allstock.pdata.push({ 
      "stock" : response.stock, 
      "createdtime" : response.createdtime, 
      "id" : response.id, 
      "units" : response.units 
      }); 

ich es dann senden über Ajax so PHP: -

   //ADD STOCK DETAIL TO DB 
    var mydata = 'stockarray='+ JSON.stringify(allstock.pdata); 
      $.ajax({ 
      type: "POST", 
      url: 'stocktodb.php', 
      data: mydata, 
      success: function(data) { 
       $('#showarraydata').html(data); 

       } 
      }); 

In meiner stocktodb.php Datei ich habe diese:

<?php 

$myarray = $_POST['stockarray']; 
$mydata = json_decode($myarray,true); 

echo "<pre>"; 
print_r($mydata); 
echo "</pre>"; 

?> 

Aber wenn diese/Echo zurückkehrte, ich dies nur auf dem Bildschirm bekommen: -

Array 
(
) 

ich glaube, das Array ist nicht einmal immer ist zu POST oder es ist etwas falsch mit dem Array (obwohl es mit json Flusen validiert). Vielleicht etwas mit stringify zu tun und die Tatsache, dass mein Array zeigt nur [] in der Konsole und dann Objekte darunter?

Ich bin ratlos und habe viele verschiedene Dinge ausprobiert, aber keine Freude. Hoffentlich kann jemand helfen.

Dank

Jonathan

+0

jemand bitte erklären, warum meine Frage bitte Downvoted wurde? –

Antwort

2

Versuchen Sie, Ihre Ajax-Code wie folgt zu ändern.

//ADD STOCK DETAIL TO DB 
$.ajax({ 
    type: "POST", 
    url: 'stocktodb.php', 
    data: {stockarray : JSON.stringify(allstock.pdata)}, 
    success: function(data) { 
    $('#showarraydata').html(data); 
    } 
}); 

+0

Nicht sicher, warum die Frage wurde downvoted :-(Wie auch immer, danke für Ihre Antwort, aber es funktioniert immer noch nicht. Wenn ich Konsole JSON.stringify (allstock.pdata) loggen ist es leer, wenn ich console.log allstock.pdata Ich denke, es kann sein, weil das Array ein Objekt sein sollte, aber nicht suer sein kann und nicht wissen, wie man es ändert? –

+0

@ JonathanLyon nicht sicher. Können Sie es ohne JSON.stringify versuchen? –

+0

ist es seltsam - es zeigt immer noch ein leeres Array, wenn ich es mit oder ohne strinify trösten - "stockarray =". Ich denke, es hat mit dem Array selbst zu tun. Es wird Daten in der Konsole zeigen, aber das erste Element ist [] dann 0: Object, 1: Object, 2: Object usw. Also ich denke, es hat mit der initialen. Opening [] zu tun, was darauf hindeutet, dass es ein leeres Array ist, wenn es nicht vielleicht ist? –

Verwandte Themen