elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Duda con jQuery, Ajax, PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con jQuery, Ajax, PHP  (Leído 1,819 veces)
Arm144

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Duda con jQuery, Ajax, PHP
« en: 24 Febrero 2017, 23:08 pm »

Hola buenas tengo la siguiente duda. Necesito realizar una ordenación en orden ascendente o descendente de las columnas de una tabla cargada desde una BD.

Esta ordenación se realiza al pulsar sobre (por ejemplo) columna nombre. la primera vez seria orden ascendente y si volvemos a pulsar descendente.

El problema reside en que no consigo cambiar el valor de la query de ASC a DESC.

Por favor help me haha.

P.D: presento los trozos de código pertinentes.

jQuery:
Código:
function ordenacion(ordenacion){
if(tipo=="ASC"){
tipo="DESC";
}else{
tipo="ASC";
}
if(ordenacion=="tdUser"){
ordenar= "order by nombreUsuario "+tipo;
}if(ordenacion=="tdNombre"){
ordenar= "order by nombrePropio "+tipo;
}if(ordenacion=="tdApellidos"){
ordenar= "order by apellidos "+tipo;
}if(ordenacion=="tdDni"){
ordenar="order by DNI "+tipo;
}if(ordenacion=="tdFecha"){
ordenar="order by fechaNacimiento "+tipo;
}
enviarConsulta();
}

function enviarConsulta(){
var dataString=ordenar;
$.ajax({
type: "POST",
url: "colocarTabla.php",
data: {info : dataString},
success: function(data){
$("#mostrarTabla").html(data);
}
});
}

Php:
Código:
$ordenar=$_POST['info']??"";
$busqueda="SELECT * FROM  personas ".$ordenar;
$resultado = consulta($busqueda);
echo $busqueda;
$xml="<?xml version=\"1.0\"?>\n";
$xml.="<personas>";
while($dato=$resultado->fetch()){
$xml.= "<persona>";
$xml.= "<nombreUsuario>".$dato['nombreUsuario']."</nombreUsuario>";
$xml.= "<nombrePropio>".$dato['nombrePropio']."</nombrePropio>";
$xml.= "<apellidos>".$dato['apellidos']."</apellidos>";
$xml.= "<DNI>".$dato['DNI']."</DNI>";
$xml.= "<fechaNacimiento>".$dato['fechaNacimiento']."</fechaNacimiento>";
$xml.= "</persona>";
}
$xml.= "</personas>";
$personas=new SimpleXMLElement($xml);
?>

<table>
<tr>
<td><a id='tdUser' onClick="ordenacion('tdUser');">Usuario</a></td>
<td><a id='tdNombre' onClick="ordenacion('tdNombre');">Nombre</a></td>
<td><a id='tdApellidos' onClick="ordenacion('tdApellidos');">Apellidos</a></td>
<td><a id='tdDni' onClick="ordenacion('tdDni');">Dni</a></td>
<td><a id='tdFecha' onClick="ordenacion('tdFecha');">Fecha</a></td>
</tr>
<?php
foreach ($personas->persona as $fila){
echo "<tr><td>".$fila->nombreUsuario."</td>";
echo "<td>".$fila->nombrePropio."</td>";
echo "<td>".$fila->apellidos."</td>";
echo "<td>".$fila->DNI."</td>";
echo "<td>".$fila->fechaNacimiento."</td></tr>";
}
?>
</table>


En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda con jQuery, Ajax, PHP
« Respuesta #1 en: 25 Febrero 2017, 09:03 am »

Hola, no envíes código SQL por Ajax, envía sólo el nombre del campo por el que quieres filtrar y el tipo de ordenación y luego en PHP recoge los parámetros, filtra los y arma tu Query.

Otra cosa, no pases al query lo que viene directamente por post, debes filtrarlos antes.




En línea

Herminio0

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Duda con jQuery, Ajax, PHP
« Respuesta #2 en: 10 Marzo 2017, 22:47 pm »

Mira, yo entendí algo como esto y lo haría así.
HTML:
Código:
  <input type="button" value"usuario" data="usuario" clases="ordenarTipo">
 <Input type="button" value="nombre" data=nombre" clases="ordenarTipo">

Jquery:
Código:
$(".ordenarTipo").Click(function(){
  Var tipo =  $(this).attr("data");
  $.ajax({
  type: "POST",
    url: "colocarTabla.php",
   data: {
      tipo: tipo
    },
   success: function(data){
   $("#mostrarTabla").html(data);
  }
 });
});

Y ya en colocarTabla.php solo recoges el parámetro y haces un If dependiendo el valor que traiga:
Código:
<?php
$tipo = $_POST["tipo"];
 If($tipo == "usuario"){
   $consulta = SELECT * FROM personas ORDER BY nombreUsuario DESC
 }else if($tipo== "nombre")
  $consulta = SELECT *FROM personas ORDER BY nombrePropio DESC

?>

Ya depende de ti también pasar a la variable tipo el valor y como lo quieres, si ASC O DESC, suerte.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas al cargar CSS en Jquery vs Ajax
Scripting
Lupin 3 4,111 Último mensaje 28 Marzo 2013, 03:19 am
por #!drvy
Problema en Jquery (ajax) « 1 2 »
Desarrollo Web
:ohk<any> 11 5,902 Último mensaje 15 Julio 2014, 23:00 pm
por MinusFour
Notificaciones con Ajax Y jQuery
Desarrollo Web
freespace16 4 5,142 Último mensaje 20 Julio 2016, 17:20 pm
por 50l3r
Problema con jQuery peticion Ajax
Desarrollo Web
Ali Baba 5 2,333 Último mensaje 4 Octubre 2017, 03:29 am
por Ali Baba
Problema al modificar datos - Jquery Ajax PHP
PHP
ka0s 1 2,402 Último mensaje 16 Noviembre 2017, 11:59 am
por ka0s
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines