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

375
Vistas
How do I pass a PHP array to Vue.js?

I have trainers.inc.php file which generates array with data retreived from a database :

$trainers_meta[0] = array('Id' => $id, 'Name' => $name, 'Description' => $description, 'Experience' => $experience, 'Focus' => $focus, 'Fileformat' => $format, 'File' => $file);

I encoded the PHP array as JSON using the PHP json_encode() function :

$trainers_meta = json_encode($trainers_meta);

The conversion went without any warnings or errors for which I specifically checked. At the top of my index.php file I require the trainers.inc.php file :

require_once('trainers.inc.php');

At the bottom of the file I create a JavaScript variable with the converted JSON contents inside of a <script> tag :

<script>
    let trainersMeta = <?php echo $trainers_meta;?>;
</script>

At the bottom of the file I link to the Vue.js CDN :

<script src="https://cdn.jsdelivr.net/npm/vue@3.2.26"></script>

Above in the index.php file I try to echo out HTML code using the v-for attribute of Vue.js :

<div class="container" v-for="trainer in trainersMeta">
   <h1>Should appear on the page</h1>
</div>

But no content ever appears. My IDE tells me a warning that the trainersMeta variable is undefined. I get that Vue.js must see the variable before it's loaded which is why I initialize it before actually importing it's CDN. Besides it doesn't matter what file or position do I put the <script> tag at the variable is always undefined. I cannot simply initialize the variable inside of the Vue.js code because Vue.js is completely incompatible with PHP in this regard. Even putting all the Vue.js code inside of a <script> tag in index.php doesn't work and Vue.js code simply never compiles at all because of it. How can I pass a PHP JSON encoded variable to Vue.js for it to see/use it?

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

0

For what it is worth, I've never used Vue.js before today. Everything I've gleaned, I picked up in about 5 minutes from the documentation.

You've:

  • created a variable (trainersMeta)
  • built a template (<div class="container")
  • loaded the Vue library (<script).

You haven't:

  • written a Vue application to use that data

You need to create an object that has a data method which returns the object you've created, and you need to call Vue.createApp with that object and then mount it on a container around your template.

Such:

<script>
  let trainersMeta = {
    Id: 123,
    Name: 'Bob'
  };
</script>
<div id="app">
  <div class="container" v-for="trainer in trainersMeta">
    <h1>Should appear on the page</h1>
    {{trainer}}
  </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@3.2.26"></script>

<script>
  const Trainers = {
    data() {
      return {
        trainersMeta
      }
    }
  }

  Vue.createApp(Trainers).mount('#app')
</script>

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