2013-07-02 3 views
0

나는 쿼리로 형식을 지정하고 추후 처리를 위해 서버에 보내야하는 5 개의 변수가 있습니다. jQuery를 통해이를 수행하려고 시도하지만 잘 작동해야합니다. 그 변수는 빈 값을 포함하고 있습니다.이 경우 해당 부분을 쿼리에서 제거해야합니다. 빈 값을 포함하는 쿼리의 해당 부분을 제거하고 올바른 쿼리를 보내는 방법은 내 관심사입니다. 도움이 진심으로 감사하겠습니다. 감사합니다.jQuery를 사용하여 데이터베이스 쿼리의 형식을 지정하는 방법

var query; 

$(document).ready(function() { 
    $("#go").click(function() { 
     var datefrom=$("#fromdate").val(); 
     var dateto=$("#todate").val(); 
     var extension= $("#extension").val(); 
     var authcode=$("#authcode").val(); 
     var wwid=$("#wwid").val(); 

     query = "'"+ datefrom +"'" + " and " + " '" + dateto + "'" + " and "; 
     alert(query); 

     $("#gridId").GridUnload(); 
     gridload(); 
    }); 
}); 
+7

당신은 서버 측에서이 일을 다시 생각해야한다. 왜냐하면 당신이 클라이언트에 sql을 생성하고 그것을 서버에 보내면 누군가가 당신의 DB를 이용하기 위해 당신의 쿼리를 쉽게 수정할 수 있기 때문입니다 – david

답변

0

당신은 함께 등등

if(datefrom && datefrom.length > 0) { 
    query += "'"+ datefrom +"'"; 
} 

if(dateto && dateto.length > 0) { 
    query += " and '" + dateto + "'"; 
} 

과 그들을 체인 수 있습니다.

BTW : 사용자가 제공 한 내용의 유효성을 검사하려면 서버 측에서 수행해야합니다.

0
var pieces = []; 
if (datefrom.length) { 
    pieces.push("datefrom = '" + datefrom + "'"); 
} 
/* repeat above for other fields */ 
query = pieces.join(' and '); 
0

은 또한 다음과 같은 재미있는 트릭을 수행 할 수 있습니다

query = "'" + [ datefrom, dateto ].join("' and '") + "'"; 

DEMO

관련 문제