Foros del Web » Programando para Internet » Jquery »

Recibir valores desde ajax

Estas en el tema de Recibir valores desde ajax en el foro de Jquery en Foros del Web. Buenas Tardes, Os cuento lo que me sucede, tengo un combo con el evento onchange que llama la siguiente función En el archivo ini.php tengo: ...
  #1 (permalink)  
Antiguo 02/09/2013, 10:44
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Recibir valores desde ajax

Buenas Tardes,

Os cuento lo que me sucede, tengo un combo con el evento onchange que llama la siguiente función

En el archivo ini.php tengo:

function MostrarResultados(){

valor1= $("#Combobox1").val();

$.ajax({
type: 'POST',
data: {datos : valor1},
dataType: "json",
url: 'Busqueda.php',
}).done(function(respuesta){
var oTable = $("#dataTable").dataTable();
oTable.fnClearTable();
oTable.fnDestroy();
$('#dataTable').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "../Busqueda.php",
});
});
}

La variable valor1 toma el valor sin problema.


En el archivo Busqueda.php tengo:

$datosrecibidos = $_POST['datos'];

y la variable $datosrecibidos esta vacía.

Alguien sabe porque no traspasa el valor al archivo Busqueda.php?

Gracias
  #2 (permalink)  
Antiguo 02/09/2013, 23:21
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Recibir valores desde ajax

Haber si resuelve tu problema:

Código PHP:
valor1= $("#Combobox1").val();

$.
ajax({
type'POST',
data'datos=' valor1//Prueba asi
dataType"json",
url'Busqueda.php',
}).
done(function(respuesta){
var 
oTable = $("#dataTable").dataTable();
oTable.fnClearTable();
oTable.fnDestroy();
$(
'#dataTable').dataTable( {
"bProcessing"true,
"bServerSide"true,
"sAjaxSource""../Busqueda.php",
});
});

  #3 (permalink)  
Antiguo 03/09/2013, 04:51
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Recibir valores desde ajax

Hola cesar,

bueno ayer finalmente tras estar toda la noche viendo lo que sucedía me di cuenta del fallo, te cuento tengo lo siguiente en el archivo Busqueda.php:

$datosrecibidos = $_POST['datos'];

$sql = mysqli_query($conexion,"SELECT a.descripcion as Descripcion, a.idcategoria as idcategoria FROM du_evento a WHERE Activo = 'S' AND a.idcategoria = '$datosrecibidos' ORDER BY Fecha_Desde");

Lo que sucede es que si comparo a.idcategoria = '$datosrecibidos' la select no va, pero si hago a.idcategoria = '789' la select va perfecta, no se que pasa con la variable $datosrecibidos. Se que recibe el valor porque hago un alert en el ini.php y me lo muestra.

Gracias x tu ayuda
  #4 (permalink)  
Antiguo 03/09/2013, 05:44
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Recibir valores desde ajax

Hola cesar,

bueno ayer finalmente tras estar toda la noche viendo lo que sucedía me di cuenta del fallo, te cuento tengo lo siguiente en el archivo Busqueda.php:

$datosrecibidos = $_POST['datos'];

$sql = mysqli_query($conexion,"SELECT a.descripcion as Descripcion, a.idcategoria as idcategoria FROM du_evento a WHERE Activo = 'S' AND a.idcategoria = '$datosrecibidos' ORDER BY Fecha_Desde");

Lo que sucede es que si comparo a.idcategoria = '$datosrecibidos' la select no va, pero si hago a.idcategoria = '789' la select va perfecta, no se que pasa con la variable $datosrecibidos. Se que recibe el valor porque hago un alert en el ini.php y me lo muestra.

Gracias x tu ayuda
  #5 (permalink)  
Antiguo 03/09/2013, 13:06
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Recibir valores desde ajax

No se de que manera compruebes que si llega eL valor a la variable pero lo mas probable esque no, intenta de esta manera:

Código PHP:
$sql mysqli_query($conexion,"SELECT a.descripcion as Descripcion, a.idcategoria as idcategoria FROM du_evento a WHERE Activo = 'S' AND a.idcategoria = '".$datosrecibidos."' ORDER BY Fecha_Desde"); 
si no te sirve intenta asi:

Cita:
valor1= $("#Combobox1").val();

$.ajax({
type: 'POST',
data: 'datos=' + valor1, //Prueba asi
dataType: "json",
url: 'Busqueda.php',
success: function(data, textStatus, XMLHttpRequest) {
alert(data);
});
});
y:

Código PHP:
$datosrecibidos $_POST['datos'];
$sql mysqli_query($conexion,"SELECT a.descripcion as Descripcion, a.idcategoria as idcategoria FROM du_evento a WHERE Activo = 'S' AND a.idcategoria = '$datosrecibidos' ORDER BY Fecha_Desde");
echo 
$datosrecibidos
si el alert te devuelve resultado el problema se encuentra en la respuesta.
  #6 (permalink)  
Antiguo 03/09/2013, 17:16
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Recibir valores desde ajax

Hola cesar

hice todo lo que me recomendaste te comento

el echo $datosrecibidos; lo visualizo sin problemas PERO la select no la hace, me di cuenta que si hago

$datosrecibidos=111

la select va de maravilla, no se porque pero la select si recibo la variable por $_POST no funciona, he hecho de todo, darle formato entero tanto con inval como settype y nada.

Tengo más formularios pasando variables por $_POST la diferencia es que aqui la estoy pasando por jQuery y no sé que sucede

Gracias
  #7 (permalink)  
Antiguo 03/09/2013, 19:45
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Recibir valores desde ajax

el echo es para saber si envia el value si te debueleve un alert con el value entonces si envia la variable, pero repito tiene que mostrarte una alerta con el value seleccionado, si esta aparece vacia significa que no esta enviado la variable el echo es lo que debolvera en la respuesta, no se si me explico, tienes que decirme si te sale una alerta con el value, o decirme si la alerta salio sin nada.

Te digo que lo hagas de esta forma para ver si esta siendo conflicto, o es un problema con el codigo.
  #8 (permalink)  
Antiguo 03/09/2013, 19:51
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Recibir valores desde ajax

Copia este codigo tal cual:

Código:
valor1= $("#Combobox1").val();

$.ajax({
type: 'POST',
data: 'datos=' + valor1, 
dataType: "json",
url: 'Busqueda.php',
success: function(data, textStatus, XMLHttpRequest) {
alert(data);
});
});
y:

Código PHP:
$datosrecibidos $_POST['datos'];
$sql mysqli_query($conexion,"SELECT a.descripcion as Descripcion, a.idcategoria as idcategoria FROM du_evento a WHERE Activo = 'S' AND a.idcategoria = '$datosrecibidos' ORDER BY Fecha_Desde");
echo 
$datosrecibidos
Si te sale una alerta con value de #Combobox1 entonces si envia la el value, si te sale un alerta sin nada (vacia) es problema de jquery.
  #9 (permalink)  
Antiguo 04/09/2013, 01:07
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Recibir valores desde ajax

Hola César,

he hecho la prueba y te comento, quitando la línea dataType: "json", muestra el alert sin problema, regresandome el valor del combobox1 asi que descarto jquery, el problema es php y la datatable

Mira lo que sucede que me he dado cuenta

Si hago esto no funciona
$datosrecibidos = $_POST['datos'];

pero si asigno a esa variable un valor sin $_POST funciona perfectamente
$datosrecibidos = un valor entero

He revisado lo que envía Busqueda.php a través de un alert en ambos casos y la cadena que envía es igual en ambos casos (la he comparado con DiffMerge), así que algo debe ser entre el datatable y php que con un valor definido funciona y con una variable por $_POST no.

Se me ha ocurrido un apaño el cual haré para salir del paso, sin embargo seguiré en búsqueda de una respuesta porque es muy extraño.

Gracias por tu ayuda
  #10 (permalink)  
Antiguo 04/09/2013, 18:58
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Recibir valores desde ajax

el select no puede ser porque si dices que poniendo manual si funciona, y poniendo asi para recibir la variable: $datosrecibidos = $_POST['datos']; esta correcto el problema se encuentra en el jquery.


Prueba asi quite dataType: "json":

Cita:
valor1= $("#Combobox1").val();

$.ajax({
type: 'POST',
data: 'datos=' + valor1,
url: 'Busqueda.php',
}).done(function(respuesta){
var oTable = $("#dataTable").dataTable();
oTable.fnClearTable();
oTable.fnDestroy();
$('#dataTable').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "../Busqueda.php",
});
});
}
si no te funciona el error esta aqui:

Cita:
.done(function(respuesta){
var oTable = $("#dataTable").dataTable();
oTable.fnClearTable();
oTable.fnDestroy();
$('#dataTable').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "../Busqueda.php",
pero como no tengo idea que quieres hacer con este codigo no puedo ver el error en este trozo de codigo.
  #11 (permalink)  
Antiguo 05/09/2013, 03:06
 
Fecha de Ingreso: agosto-2013
Ubicación: Madrid
Mensajes: 18
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Recibir valores desde ajax

Hola Cesar no funciono quitando el datatype:json

si el error esta en el jquery te paso como lo tengo actualmente

success: function(respuesta) {
var oTable = $("#dataTable").dataTable();
oTable.fnClearTable();
oTable.fnDestroy();
$('#dataTable').dataTable( {
"bServerSide": true,
"sAjaxSource": "../Busqueda.php",
"oLanguage": {
"sLengthMenu": "Mostrar _MENU_ Registros por página",
"sZeroRecords": "No se encontró nada",
"sInfo": "Mostrando del _START_ al _END_ de _TOTAL_ Registros",
"sInfoEmpty": "Mostrando del 0 al 0 de 0 Registros",
"sInfoFiltered": "(Filtrado de un total de _MAX_ Registros)"
},
"aLengthMenu": [[5, 10, 15, -1], [5, 10, 15, "Todo"]]
});
$("#dataTable_previous").html("Anterior");
$("#dataTable_next").html("Siguiente");
$("#dataTable_filter label").contents().first().remove();
$("#dataTable_filter label input").attr('placeholder', 'Buscar');

}

Lo que intento hacer es que cuando una persona elija un valor de un combo actualize los datos de la tabla extrayendolos de la consulta sql que has visto.

Uso las funciones oTable.fnClearTable(); oTable.fnDestroy(); y luego cargo nuevamente la misma.

Creo que es así no tengo mucha experiencia más allá de lo que he leído acerca de este pluging.

De verdad gracias x tu ayuda

Etiquetas: javascript, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:03.