Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
Cómo convertir Javascript JSON.stringify() a PHP Array

Me he estado golpeando la cabeza contra la pared durante 2 días, buscando una solución para este problema, por favor ilumíname con esto:

Tengo este código JavaScript que incluye un archivo blade y pasa datos a través de él.

 const loadTemplate = (locationinfo) => { let info = ` <div class="location-info"> <h1>${locationinfo.business_name}</h1> @include('pages/business-space/templates/t1',[ 'locationinfo'=>'${JSON.stringify(locationinfo)}', //this is the code ]) </div>`; return info; }

Cuando registro JSON.stringify(locationinfo) en mi consola, es solo una cadena json simple:

 { "id":3, "business_name":"Wen", "business_address":"sdfsdf", "lat":14.764397881407836, "lng":121.08031105807841, "is_active":"Yes", "created_by":null, "date_created":"2022-06-17 11:09:42" }

En mi t1.blade.php, si hago eco de la variable locationinfo, todavía muestra lo mismo:

 echo $locationinfo; //and the result: { "id":3, "business_name":"Wen", "business_address":"sdfsdf", "lat":14.764397881407836, "lng":121.08031105807841, "is_active":"Yes", "created_by":null, "date_created":"2022-06-17 11:09:42" }

Pero cuando traté de decodificarlo usando json_decode , se vuelve nulo. Aquí está mi código:

 $arr = json_decode($locationinfo); //this is null foreach ($arr as $key => $value) { echo $key; }

Otro error:

 $arr = json_decode($locationinfo, true); foreach ($arr as $key => $value) { echo $key; } //error: foreach() argument must be of type array|object, null given

¿Por qué está pasando esto? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Primero asegúrese de que $locationinfo sea exactamente una cadena json. Sospecho que es una matriz asociativa de php.

Intente echo $locationinfo['id']; . Si aparece el valor, no desea decodificarlo. Use $locationinfo directamente sin decodificación json.

Si es un json, intente usarlo así,

 $arr = json_decode($locationinfo, true);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Agrega una tira de barras.

 $data = json_decode(stripslashes($data),true);

Demostración: http://codepad.org/XX9QD3iX

Respondido aquí: https://stackoverflow.com/a/37599821/19168006

Editar: el ejemplo en la demostración tiene un error stdClass, este es el que funciona: http://codepad.org/lfJJu5yA

about 4 years ago · Juan Pablo Isaza Denunciar

0

no puede pasar datos js a php, porque php renderizó primero.

pero puedes llamar a ajax y devolver la hoja a la respuesta

tu llamada ajax

 const loadTemplate = (locationinfo) => { $.ajax({ data: { 'locationinfo': locationinfo, }, type: "post", url: "{{route('someRoute')}}", success: function (data) { let info = ` <div class="location-info"> <h1>${locationinfo.business_name}</h1> ${data} </div>`; return info; }, error: function () { //has error } }); }

tu ruta

 Route::get('/getAjaxData', [AjaxController::class,'show']) ->name('someRoute'); // but i use __invoke controller

tu controlador

 <?php namespace YOUR_NAMESPACE; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class AjaxController extends Controller { public function show(Request $request) { $data = $request->input('locationinfo'); return view('pages/business-space/templates/t1')->with([ 'locationinfo' => $data, ]); } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda