2016-06-14 7 views
-3

Wie kann ich Javascript-Array an PHP senden? Ich habe JSON.stringify zu jedem Javascript-Array verwendet und das Array mit json_decode abgefangen, funktioniert aber immer noch nicht.Senden Sie Javascript-Array zu PHP mit AJAX

Ich weiß nicht mehr, wie es geht. Irgendein Vorschlag?

In JS:

jarak = new Array(koordinat_kapal_threat.length); 
for (var i = 0; i < jarak.length; i++) { 
    jarak[i] = new Array(koordinat_kapal_threat.length); 
    for (var j = 0; j < jarak.length; j++) { 
     if (i === j) { 
      jarak[i][j] = 0; 
     } else { 
      var distance = getDistance(koordinat_kapal_threat[i], koordinat_kapal_threat[j]); 
      jarak[i][j] = distance; 
     } 
    } 
} 

// buat array visibilitas 
visibilitas = new Array(koordinat_kapal_threat.length); 
for (var i = 0; i < visibilitas.length; i++) { 
    visibilitas[i] = new Array(koordinat_kapal_threat.length); 
    for (var j = 0; j < visibilitas.length; j++) { 
     if (i === j) { 
      visibilitas[i][j] = 0; 
     } else { 
      var visibilitas_kapal = 1/jarak[i][j]; 
      visibilitas[i][j] = visibilitas_kapal; 
     } 
    } 
} 

var tau = 0.01; 
// buat array feromon 
feromon = new Array(koordinat_kapal_threat.length); 
for (var i = 0; i < feromon.length; i++) { 
    feromon[i] = new Array(koordinat_kapal_threat.length); 
    for (var j = 0; j < feromon.length; j++) { 
     feromon[i][j] = tau; 
    } 
} 

var banyak_semut = koordinat_kapal_threat.length; 

var a = JSON.stringify(koordinat_kapal_threat); 
var b = JSON.stringify(jarak); 
var c = JSON.stringify(visibilitas); 
var d = JSON.stringify(feromon); 

var data = { 
    koordinat_kapal_threat: a, 
    jarak: b, 
    visibilitas: c, 
    feromon: d, 
    banyak_semut: banyak_semut 
}; 




$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url: "algoritmaAnt.php", 
    data: data, 
    success: function (result) { 
     var data = JSON.parse(result.responseText); 
     var jalur = new google.maps.Polyline({ 
      path: data, 
      geodesic: true, 
      strokeColor: '#FCFF49', strokeOpacity: 1.0, 
      strokeWeight: 2, 
     }); 
     jalur.setMap(map); 
    } 
}); 

In PHP:

$koordinat_kapal_threat =json_decode($_POST['koordinat_kapal_threat']); 
$jarak = json_decode($_POST['jarak']); 
$visibilitas =json_decode($_POST['visibilitas']); 
$feromon = json_decode($_POST['feromon']); 
$banyak_semut = $_POST['banyak_semut']; 
+2

Wir können nicht wissen, warum etwas nicht funktioniert, wenn Sie nicht den entsprechenden Code liefern zusammen mit ein wenig Erklärung, was Array Sie versuchen – charlietfl

+0

zu schicken Sind Sie mit *** jQuery *** oder was zu senden und Daten zu bekommen ...? –

+0

Ich habe meine Frage aktualisiert @charlietfl –

Antwort

0

Dies ist der einfache Weg, müssen Sie JSON.stringify verwenden für die Codierung von Daten zu JSON, ähnlich json_decode für Extrakt verwenden die Daten

JavaScript var a = JSON.stringify (ihr_array_name); var b = JSON.stringify (jarak); // Ihr Array

// Ajax Call 
$.ajax({ 
    type: "POST", 
    dataType: "json", 
    async:true, 
    url: "algoritmaAnt.php", 
    data: {'data1':a,'data2':b}, 
    success: function (result) { 
      // your success operation; 
     } 
}); 

PHP-Code

$jarak = json_decode($_POST['data1']); 
$data2 = json_decode($_POST['data2']); 

print_r($jarak); 
print_r($data2); 
+0

Wie kann ich mehrere Arrays senden, wie ich im Beispiel gebe? –

+0

Bearbeitet für Ihre Anforderung, in Ajax Anrufdaten auch JSON-Methode verwenden, so können Sie die Daten mit separater – Keerthivasan

+0

anhängen In Erfolg Ajax, wie das Ergebnis zu fangen? Ist mein Beispiel wahr oder etwas falsch? –

0

Keine Notwendigkeit Arrays stringify. Ändern Sie Ihre Daten var wie unten

var data = { 
    koordinat_kapal_threat: koordinat_kapal_threat, 
    jarak: jarak, 
    visibilitas: visibilitas, 
    feromon: feromon, 
    banyak_semut: banyak_semut 
};