Сохранить объект Javascript в MySQL с помощью PHP - PullRequest
0 голосов
/ 04 октября 2018

Как сохранить объект Javascript в MySQL с помощью PHP?Прямо сейчас я использую API Google Map, и он возвращает мне объект ответа

directionsService.route({
    origin: document.getElementById('start').value,
    destination: document.getElementById('end').value,
    travelMode: 'BICYCLING'
}, function(response, status) {
    if (status === 'OK') {
        directionsDisplay.setDirections(response); //The Return Response
        //This function call ajax below to send response Obj with a key to store to MySQL
        storeRouteDB(storeLocations, response);
        showSteps(response, markerArray, display, map);
    } else {
        window.alert('Directions request failed due to ' + status);
    }
});

И я использую Ajax для отправки Objet моему бэкэнду php

$.ajax({
    type: "GET",
    url: 'http://localhost:8080/storedRouteDB.php',
    async: false,
    data: {key: key, value: value},
    error: function(){
        console.log("Error in Ajax");
    },
    success: function (data) {
        result = data;
    }
});

И в моем php ясделать:

$key = $_REQUEST['key'];
$value = $_REQUEST['value'];
echo checkDB($key, $value);
function checkDB($key, $value) {
    $dbServerName = "localhost";
    $dbUserName="root";
    $dbPassword="";
    $dbName="myDB";
    ....
    // Trying to zip the object to String and save it as char to MYSQL
    $value_zip = serialize($value);
    $sql = "INSERT INTO storedRoute (locations, objects) VALUES ('$key', '$value_zip')"; 

Но это я получил результат:

Uncaught TypeError: Cannot read property 'b' of undefined
at _.n.intersects (js?key=AIzaSyAbBYjTy8g4-dGYAl4_mHmWDVoWGEziq6c&callback=initMap:147)
at i (jquery.min.js:2)
at jt (jquery.min.js:2)
at jt (jquery.min.js:2)
at jt (jquery.min.js:2)
at jt (jquery.min.js:2)
at Object.<anonymous> (jquery.min.js:2)
at Function.each (jquery.min.js:2)
at jt (jquery.min.js:2)
at jt (jquery.min.js:2)

Как исправить эту ошибку?Или есть другой лучший способ сохранить объект Javascript в MySQL с помощью PHP?спасибо!

1 Ответ

0 голосов
/ 04 октября 2018

Я обычно делаю что-то вроде этого:

$.ajax({
    type: 'POST',
    url: 'http://localhost:8080/storedRouteDB.php',
    async: false,
    data: 'data='+JSON.stringify({key: key, value: value}),
    error: function(){
        console.log("Error in Ajax");
    },
    success: function (data) {
        result = data;
    }
});

Затем вы можете получить доступ к объекту в $_POST['data'].Может быть, вы тоже хотите расшифровать его с помощью json_decode.Дайте мне знать, если это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...