JSON .parse: неожиданный конец данных в строке 1 столбца 1 JSON данных laravel - PullRequest
0 голосов
/ 27 мая 2020

Здравствуйте, у меня проблема, когда я хочу показать результат моего запроса в своих текстовых полях. Я пытался не использовать JSON .parse, но когда я это делаю, это ничего не показывает, тогда я использую предупреждение и показываю свой undefined это код, использующий предупреждение, чтобы показать результат

$(document).ready(function(){
    $('#zip_code').blur(function()
    {
        var zip_code=$(this).val();
        if(zip_code != '')
        {
            var _token = $('input[name="_token"]').val();
            $.ajax({
                url:"{{route('complete.zip')}}",
                method:"POST",
                data:{zip_code:zip_code,_token:_token},
                success:function(data)
                {
                    alert(data.value1);

                }
            });
        }
    });
});

, когда я пытаюсь преобразовать JSON в консоли, покажите мне это SyntaxError: JSON .parse: неожиданный конец данных в строке 1 столбец 1 данных JSON это код

$(document).ready(function(){
    $('#zip_code').blur(function()
    {
        var zip_code=$(this).val();
        if(zip_code != '')
        {
            var _token = $('input[name="_token"]').val();
            $.ajax({
                url:"{{route('complete.zip')}}",
                method:"POST",
                data:{zip_code:zip_code,_token:_token},
                success:function(data)
                {
                    var result = JSON.parse(data);
                   $('#estado').val(result.value1);
                   $('#municipio').val(result.value2);

                }
            });
        }
    });
});

файлы PHP - это следующая база данных использования; class ClientBusinessController расширяет контроллер {

public function index()
{

    return view("new_client.register_business");
}

public function receiveValueZip(Request $request)
{   
    if(!empty($request->get('zip_code')))
    {

        $result=DB::table('direccion')
        ->select('Calle1','Calle2')
        ->where('Id_Direccion','=',6)
        ->get();
        foreach($result as $r)
        {
            json_encode(array("value1"=>$r->Calle1,"value2"=>$r->Calle2));

        }
    } 
}

Кто-нибудь знает, как решить эту проблему? большое спасибо

1 Ответ

0 голосов
/ 28 мая 2020

Если вы звоните json_encode несколько раз, вы получите неверный JSON. Вместо этого вы должны полностью построить структуру массива и вызвать json_encode только один раз. Однако я рекомендую использовать response()->json и позволить Laravel обрабатывать сериализацию JSON:

public function index()
{

    return view("new_client.register_business");
}

public function receiveValueZip(Request $request)
{   
    if(!empty($request->get('zip_code')))
    {

        $result=DB::table('direccion')
        ->select('Calle1','Calle2')
        ->where('Id_Direccion','=',6)
        ->get();
        return response()->json(
            $result->map(function ($row) {
                return array("value1"=>$r->Calle1,"value2"=>$r->Calle2);
            });
        );

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