skip to Main Content

I have difficulty parsing JSON date from my PHP file

{"date":"20/12/2022","result":"£13000.00","medias":"BBC","country":"UK"}

but when I try to parse it and to see the data in the console.log – it’s empty

Please help

My Ajax Function

function ajax_call(){
    const style2 = $("#style1").val();
    const radio_btn = $('input[name="drone"]:checked').val();
    if(style2==""){
        document.getElementById("error").innerHTML = "Error: Please enter style code !"; 
        return false;
    } 
    {
        $.ajax({ 
            type: 'post',
            url: "t.php",  
            data: { styles: style2 , country: radio_btn},
            dataType: "json",
            success: function(data){  
                var jsondata = $.parseJSON(data);
                console.log(jsondata);
            }
        })
    }
}

My PHP

<php

header('Content-type: application/json');
$date = "20/12/2020";
$end_result = "£13000.00";
$medias = "BBC";
$country = "UK";

$sortjson = array('date' => $date,  
                    'result' =>iconv('Windows-1252', 'UTF-8', $end_result), 
                    'medias' => $medias, 
                    'country' => $country
            );

echo json_encode($sortjson, JSON_UNESCAPED_UNICODE);
?>

3

Answers


  1. You have a error in your Success method:

    use JSON.parse() method instead of $.parseJSON()

    success: function(data){  
    
       var jsondata = JSON.parse(data);
       console.log(jsondata);
    }
    
    Login or Signup to reply.
  2. You have to use JSON.parse()

    function ajax_call(){
    const style2 = $("#style1").val();
    const radio_btn = $('input[name="drone"]:checked').val();
    if(style2==""){document.getElementById("error").innerHTML = "Error: Please enter style code !"; return false;} {
    $.ajax({ 
        type: 'post',
        url: "t.php",  
        data: { styles: style2 , country: radio_btn},
                      dataType: "json",
                     success: function(data){  
       var jsondata = JSON.parse(data);
            console.log(jsondata);
    }
    })
    }
    }
    
    Login or Signup to reply.
  3. I believe there is a typo in the PHP code, you need to change the first line from:

    <php
    

    to

    <?php
    

    If the first line is <php, the output won’t be valid JSON.

    Complete PHP code:

    <?php
    
    header('Content-type: application/json');
    $date = "20/12/2020";
    $end_result = "£13000.00";
    $medias = "BBC";
    $country = "UK";
    
    $sortjson = array('date' => $date,  'result' =>iconv('Windows-1252', 'UTF-8', $end_result), 'medias' => $medias, 'country' => $country);
    
    
    echo json_encode($sortjson, JSON_UNESCAPED_UNICODE);
    
    ?>
    

    Also, I’m not 100% sure you need the iconv call, you could try the below code:

    <?php
    
    header('Content-type: application/json');
    $date = "20/12/2020";
    $end_result = "£13000.00";
    $medias = "BBC";
    $country = "UK";
    
    $sortjson = array('date' => $date,  'result' => $end_result, 'medias' => $medias, 'country' => $country);
    
    echo json_encode($sortjson, JSON_UNESCAPED_UNICODE);
    
    ?>
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search