Tengo una opción de selección como a continuación.

 @foreach($destinations as $destination)
{!! Form::select('destination', $counts, $destination->ordering, array('onchange'=>'fetch_select(this.value,$destination->id)') !!}
@endforeach

Estoy tratando de pasar una variable llamada $ destination-> id en la función onchange como arriba, que activará una función en java-script más adelante. Sin embargo, no puedo pasar esta variable como lo hice anteriormente. Lanza muchos errores. Dice

Uncaught SyntaxError: Unexpected token >

En la consola de inspección.

Lo intenté con:

 'onchange'=>'fetch_select(this.value,destination->id)'
'onchange'=>'fetch_select(this.value,"$destination->id")'
'onchange'=>'fetch_select(this.value,(destination->id))'
'onchange'=>'fetch_select(this.value,($destination->id))'

Ninguno de ellos funciona. ¿Cómo puedo evitar esto? Con saludos

-1
mario 16 abr. 2017 a las 12:59

2 respuestas

La mejor respuesta

Su código trata destination-> id como un literal debido a las comillas simples. De hecho, está obteniendo el valor destination-> id pasado como parámetro a la función, y destination-> id no es javascript legal. Se lee como destino menos mayor que id , lo que no tiene sentido.

Tratar

'fetch_select(this.value,' . $destination->id . ')'
0
Jason 16 abr. 2017 a las 10:15

La función de selección de formulario no está cerrada, falta), intente debajo del código para evitar el error de sintaxis

{!! Form::select('destination', $counts, $destination->ordering, array('onchange'=>"fetch_select(this.value,$destination->id)")) !!}
0
Rahman Qaiser 16 abr. 2017 a las 10:16