AJAX - Devolviendo Dos Objetos JSON con Una Función PHP
26 jul 2013, 20:34:16
Vistas: 47.8K
Votos: 0
¿Cómo puedo devolver dos objetos JSON con una llamada AJAX y una función PHP? ¡Cualquier ayuda es apreciada!
Aquí está la función PHP:
function get_ldap_attr() {
header("Content-type: application/json");
$lan = $_POST['lan'];
$dn = get_site_option ( "ldapServerOU" );
$usr = get_site_option ( "ldapServerCN" );
$pw = get_site_option ( "ldapServerPass" );
$addr = get_site_option ( "ldapServerAddr" );
$ad = ldap_connect ( $addr )
or die ( "Error de conexión." );
ldap_set_option ( $ad, LDAP_OPT_PROTOCOL_VERSION, 3 );
ldap_set_option ( $ad, LDAP_OPT_REFERRALS, 0 );
$bind = ldap_bind ( $ad, $usr, $pw );
if ( $bind ) {
$SearchFor ="cn=".$lan;
$result = ldap_search ( $ad,$dn,$SearchFor );
$entry = ldap_first_entry ( $ad, $result );
if ( $entry != false ) {
$info = ldap_get_attributes ( $ad, $entry );
}
$comm = stripos ( $info['manager'][0], ',' );
// encontrar posición de la primera coma en CN=Mxxxxxx,OU=Users,OU=MCR,DC=mfad,DC=mfroot,DC=org (campo directReports)
$eq = stripos ( $info['manager'][0], '=' );
// encontrar posición del primer =
$s_lanid = substr ( $info['manager'][0], $eq+1, ( ( $comm-1 ) - ( $eq ) ) );
//obtener subcadena entre = y coma... para la identificación lan..
$sup = getLDAPInfo ( $s_lanid, $bind, $ad, $dn );
// obtener información del supervisor...
}
echo json_encode($sup);
die();
}
Y el jQuery:
jQuery(function() {
jQuery('#empLanId').on('blur', function() {
var lan = jQuery('#empLanId').val();
var ajaxurl = '<?php echo admin_url("admin-ajax.php", null); ?>';
var data = { action: "get_ldap", lan: lan};
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: data,
dataType: 'json',
success: function(response) {
jQuery('#empSupLanId').val(response.lanid);
jQuery('#empSupName').val(response.fullname);
jQuery('#empSupNumber').val(response.phone);
}
});
});
});
Todas las respuestas a la pregunta
3
0
Si lo entiendo correctamente, necesitas envolverlos en un array y pasarlos a Javascript.
function get_ldap_attr() {
header("Content-type: application/json");
...
// supongamos que quieres devolver $second_var
echo json_encode(array($sup,$second_var));
die();
}
La función de éxito de la solicitud JSON los recibirá como un array. Puedes acceder a ellos con un índice numérico.
jQuery(function() {
jQuery('#empLanId').on('blur', function() {
var lan = jQuery('#empLanId').val();
var ajaxurl = '<?php echo admin_url("admin-ajax.php", null); ?>';
var data = { action: "get_ldap", lan: lan};
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: data,
dataType: 'json',
success: function(response) {
response[0] // primera variable $sup
response[1] // segunda variable $second_var
//jQuery('#empSupLanId').val(response.lanid);
//jQuery('#empSupName').val(response.fullname);
//jQuery('#empSupNumber').val(response.phone);
}
});
});
});

M-R
2.62K
26 jul 2013 20:56:00
0
Código jQuery:
(function ($) {
'use strict';
$(function () {
var valor_1 = 10;
var valor_2 = 20;
$('.btn').on('click', function(){
$.ajax({
url: 'tu_url_ajax_aqui',
type: 'POST',
data: {
action : 'nombre_de_la_accion',
val_1 : valor_1,
val_2 : valor_2,
},
beforeSend: function () {
console.log('Enviando....');
},
success: function (response) {
var obj = JSON.parse(response);
console.log(obj);
},
error: function (errorThrown, status, error) {
console.log( status );
}
});
})
});
})(jQuery);
Código PHP:
function obtener_atributo_ldap() {
$obj_valor_1 = $_POST['val_1'];
$obj_valor_2 = $_POST['val_2'];
echo json_encode(array(
'obj_1' => $obj_valor_1,
'obj_2' => $obj_valor_2,
));
}
Eso es todo.

Razon Komar Pal
316
7 nov 2018 07:45:54
1
<script type="text/javascript">
$(document).ready(function(){
//script de jQuery
$("#emp_mat").change(function(){
var emp_mat = $(this).val();
$.ajax({
url:"emp_info.php",
dataType:'json',
data:{data:emp_mat}
}).done(function(result)
{
$("#nom_prenom").val(result[0]);
$("#adresse").val(result[1]);
})
});
});
</script>
<input type="text" id="nom_prenom" disabled="true" size="58"/>
<input type="text" id="adresse" disabled="true" size="58"/>

Ahdi Kaddes
9
26 jul 2018 11:57:59
Preguntas relacionadas
4
respuestas
5
respuestas
2
respuestas