Yura_Mart
@Yura_Mart

Как избавиться от двойных ковычек в json массиве?

Есть запись объекта $product и перевод объекта $product в массив:
if (isset($_POST['get_product'])){
    $product_id = $_POST['product_id'];
    global $connection;
    $query = "SELECT * FROM product WHERE id = '$product_id'";
    $res = mysqli_query($connection, $query);
    $product= [];
    while($row = mysqli_fetch_assoc($res)) {
        $product_id = $row['id'];
            $product[$product_id] = [
                'product_id' => $row['id'],
                'product_title' => $row['title'],
                'product_image' => $row['image'],
                'product_text' => $row['text'],
            ];
    }
    echo json_encode(array_values($product));
}


Есть запрос ajax, где и получается массив:
let PRODUCTS = [];
function getProducts(){
    $.ajax({
        type: "POST",
        dataType: 'JSON',
        url: "http://sait/api/api_product.php",
        data: "product_id="+product_id+
            "&get_product=yes",

        error: function(){
            swal("Ошибка!","Проверьте Интернет-соединение и повторите попытку","error");
        }
    })
        .then(showProducts)
        .catch(err=>{
            errorMessage(err.message);
        });
}

function showProducts(products){
    PRODUCTS = products;
    console.dir(PRODUCTS);
}

так вот, получаю в консоли такой формат:

product_id: "2"
product_image: "images/150x150.png"
product_text: "Хороший товар, всем спасибо"
product_title: "Товар 2"

а нужно, чтобы цифровые значения были без "":

product_id: 2

каким образом это делается?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
echo json_encode($what, JSON_NUMERIC_CHECK);
И, "между нами, девочками", там у тебя дырища:
$product_id = $_POST['product_id'];
$query = "SELECT * FROM product WHERE id = '$product_id'"; // <-- Hi there SQL injection...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы