Я хотел бы знать, как передать ассоциативный массив $data[] в функцию javascript внутри <button>
без необходимости помещать его каждый раз $data[]
, то есть: сначала я делаю свой запрос
<?php
$resultado=mvcontrolador::listadoTablaControlador("t_cliente",null);
foreach ($resultado as $indice => $data) { ?>
Я отображаю поля в таблице:
<tr id="campos">
<td><?php echo $data['nombre_cliente'];?></td>
<td><?php echo $data['apellido_cliente'];?></td>
<td><?php echo $data['cedula_cliente'];?></td>
<td><?php echo $data['correo_cliente'];?></td>
<td><?php echo $data['telf_cliente'];?></td>
<td><?php echo $data['estado'];?></td>
<td><?php echo $data['codigopostal'];?></td>
<td><?php echo $data['localidad'];?></td>
Y donde quiero que dichos valores del array sean insertados en una funcion
dentro de un
`
<form method="POST">
<td> <button type="button" value=""
onclick='return verInfoCliente("<?php echo $data['id_cliente'];?>");'
name="infoCliente" >Info</button></td> <?php } ?>
Теперь я хочу использовать внутри функции, которая находится в отдельном файле js:
функция viewCustomerInfo(){}
Это показывает предупреждение со всеми данными моего массива без необходимости вручную размещать все данные массива отдельно. Без необходимости делать это:
verInfoCliente("<?php echo $data['id_cliente'],
$data['nombre_cliente'],
$data['apellido_cliente'],
$data['cedula_cliente'],
$data['correo_cliente'],
$data['telf_cliente'];?>");
И функция javascript:
function verinfocliente(id,nombre,apellido,cedula,correo,telf){
alert('Los datos del cliente son: \nNombre:'+nombre+'\nApe... ');
}
так далее...
Я хочу передать этот массив PHP в funcion()
javascript и funcion()
использовать этот массив в моем файле alert()
.
Надеюсь, что поняли, что я хочу выставить, заранее спасибо.
Вы не можете напрямую передать его из массива
php
в массивjavascript
, но вы можете передать его прямо из массиваphp
вjson
, то естьobjeto json
вjavascript
.В PHP примените функцию
json_encode
к массиву.Согласно вашему коду это будет:
Функция
javascript
получает объект, значения получаются интерпретациейjson
:Наконец, если вы хотите, чтобы это было строго
array
изjavascript
(но не изjson
), вы должны создать пользовательскую функцию вphp
, но на этом этапе нет необходимости усложнять. УдачаВы можете определить такие переменные в JS, чтобы вам не приходилось каждый раз вызывать PHP:
Вот как моя функция выглядела при нажатии на
<button type="button" onclick="verInfoCliente("<?php echo json_encode($data);?>")">
:function verInfoCliente(datos){ if (confirm('Infomacion del Cliente. \nNombres: '+datos.nombre_cliente+ '\nApellidos: '+datos.apellido_cliente+ '\nCedula: '+datos.cedula_cliente+ '\nCorreo: '+datos.correo_cliente+ '\nTelefono: '+datos.telf_cliente+ '\nEstado: '+datos.estado+ '\nCodigo Postal: '+datos.codigopostal+ '\nLocalidad: '+datos.localidad+ '\nFecha de registro: '+datos.fecha_reg+ '\n\n¿Desea editar este cliente?')) { alert('Asegurese de que los datos sean los correctos.'); window.location.href="editarCliente&idCliente="+datos.id_cliente; }else{ return false; } }
Графически это показывает мне это:Спасибо всем за вашу помощь!