2012-04-03 10 views
2

我想查詢一個SQL數據庫,我找不出爲什麼我的代碼無法工作。當我調用javascript函數:爲什麼我無法使用javascript進行正確的SQL/PHP查詢?

function calledfunction(){ 
var date = new Date(document.getElementById("datetime1").value); 
var dateformat = "'"+date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate() + " " + date.getHours() +":" + date.getMinutes()+"'"; 
     alert("Value is: " + dateformat); 
       microAjax("genjsonphp.php?stdt="+dateformat, function(data) { 
        //edited out 
     } 

我得到的警告:值是:「2011-12-6 0:0」

當我在警戒值複製並粘貼所以上述代碼變爲:

function calledfunction(){ 
var date = new Date(document.getElementById("datetime1").value); 
var dateformat = "'"+date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate() + " " + date.getHours() +":" + date.getMinutes()+"'"; 
     alert("Value is: " + dateformat); 
dateformat = '2011-12-6 0:0'; 

       microAjax("genjsonphp.php?stdt="+dateformat, function(data) { 
        //edited out 
     } 

然後代碼工作正常。有沒有人有一個想法是什麼問題?

+0

作爲一個方面說明,我認爲你應該讓你的查詢字符串更多的URL「格式」。它可能會弄亂你的ajax,否則''microAjax(「genjsonphp.php?stdt =」+ encodeURIComponent(dateformat),function(){});' – ShadowScripter 2012-04-03 16:41:58

回答

4

你明確地引用變量字符串:

"'"+date.getFullYear() ... 

所以你要發送

genjsonphp.php?stdt='2011-12-6 0:0' 

(注意單引號)

在你發送第二種情況:

genjsonphp.php?stdt=2011-12-6 0:0 
+0

console.log這個URL,你會看到Alex K.是正確的。 – encodes 2012-04-03 16:44:10

+0

so,var dateformat ='2011-12-6 0:0';和var dateformat =「'」+ date.getFullYear()+「 - 」+(date.getMonth()+ 1)+「 - 」+ date.getDate()+「」+ date.getHours()+「:」 + date.getMinutes()+「'」;不生產同樣的東西? – Stagleton 2012-04-03 16:44:26

+0

不是; 'var X ='A''是1個字符的字符串'A',而'var X =''「+'A'+''」是3個字符的長字符串''A'' – 2012-04-03 16:46:12

1

"genjsonphp.php?stdt="+'2011-12-6 0:0'解析到:"genjsonphp.php?stdt=2011-12-6 0:0""genjsonphp.php?stdt="+dateformat解析到:"genjsonphp.php?stdt='2011-12-6 0:0'"

關注引號。

相關問題