2012-11-12 3 views
0

나는 자바 스크립트 (jquery)/PHP와 coockies를 사용하여 dinamically 테이블을 정렬하려고합니다. 궁금쿠키를 사용하여 동적으로 테이블 정렬

$tabla = "tablaPruebas"; 
$consulta = "SELECT+*+FROM+".$tabla."+ORDER+BY+".$_COOKIE["campo"]."+".$_COOKIE["orden"]; 

//I create this cookie by using the value of the other 2 cookies I already have 
    $_COOKIE["consulta"] = $consulta; 

:

<script type="text/javascript" src="jquery-1.8.2.js"></script> 
    <script type="text/javascript"> 

     function setCookie(c_name,value,exdays) { 
      var exdate=new Date(); 
      exdate.setDate(exdate.getDate() + exdays); 
      var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
      document.cookie=c_name + "=" + c_value; 
     } 

     function getCookie(c_name) { 
      var i,x,y,ARRcookies=document.cookie.split(";"); 
      for (i=0;i<ARRcookies.length;i++) { 
       x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
       y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
       x=x.replace(/^\s+|\s+$/g,""); 
       if (x==c_name) { 
        return unescape(y); 
       } 
      } 
     } 

     $(document).ready(function(){ 

      $("a").toggle(function(){ 
       setCookie("orden","ASC",100); 
      }, function() { 
       setCookie("orden","DESC",100); 
      }); 

      $("a").click(function(){ 
       setCookie("campo",$(this).html(),100); 

       $.ajax({ 
        type: "POST", 
        url: "ordenaTabla.php", 
        //data: , 
        success:function(data) { 
         //alert(data); 
        } 
       }); 

      }); 

     }); 
    </script> 
</head> 
<body> 
    <div id="tabla"> 
     <table border="1" align="center" width="300"> 
      <tr> 
       <td align="center"><a href="#">ID</a></td> 
       <td align="center"><a href="#">nombre</a></td> 
       <td align="center"><a href="#">edad</a></td> 
      </tr> 
      <?php 
       include_once ("mySqlConexion.inc.php"); 

       $tabla = "tablaPruebas"; 

       if(isset($_COOKIE["consulta"])){ 
        $consulta = $_COOKIE["consulta"]; 
        $consulta = str_replace("+", " ", $consulta); 
       } 
       else{ 
        $consulta = "SELECT * from ".$tabla; 
       } 

       echo $consulta; 
       echo print_r($_COOKIE); 

       //En la variable resultado se mete el resultado de la ejecución de la consulta que se ejecuta gracias a la funcion mysql_query 
       $resultado = mysql_query($consulta, $link); 

       while($fila = mysql_fetch_array($resultado)) { 
        echo "<tr>"; 
         echo "<td>".$fila["ID"]."</td>"; 
         echo "<td>".$fila["nombre"]."</td>"; 
         echo "<td>".$fila["edad"]."</td>"; 
        echo "</tr>"; 
       }; 
      ?> 
     </table> 
    </div> 
</body> 
나는 내가 AJAX를 사용하여 호출 PHP 파일에서 사용하는 코드는 다음과 같습니다

마일 코드는 이것이다 왜 그것이 작동하지 않는지 내게 말할 수 있다면 : (

미리 감사드립니다 ...

+0

당신이 일을 무엇을하고 문제를 일으키는 코드의 어떤 부분 식별해야합니다. 게시물에 코드 묶음을 덤핑하고 "작동하지 않는다"고 말하면 많은 사람에게 알려주지 않습니다. 또한 문제를 해결하기 위해 시도한 단계를 식별하는 데 도움이됩니다. – charlietfl

답변

0

쿠키는 클라이언트 컴퓨터에 저장됩니다.

클라이언트가 모든 테이블을 삭제하는 것처럼 쿠키를 편집하여 데이터베이스에서 임의의 sql을 실행할 수 있기 때문에 sql 쿼리를 클라이언트 컴퓨터에 저장하는 것은 좋지 않은 생각입니다.

대신 스위치 제어 명령문에서 필수 순서화에 대한 약식을 사용하고 order by 절을 설정하십시오.

또한 쿠키를 사용하지 않고 매개 변수의 필요한 순서를 ajax POST에 넘겨줍니다. 여기

은 볼 수있는 방법을 몇 가지 조각입니다

//javascript 
$("a").click(function(){ 
      var campo= "name asc"; 

      $.ajax({ 
       type: "POST", 
       url: "ordenaTabla.php", 
       data: {campo: campo}, 
       success:function(data) { 
        //alert(data); 
       } 
      }); 

}); 

//PHP 
switch($_POST['campo']){ 
    case "name asc": $orderby= "ORDER BY name ASC"; break; 
    default: $orderby= ""; 
} 
관련 문제