2011-06-10 78 views
0

我正在使用由Nodstrum提供的優秀教程。我試圖用PHP,MYSQL和AJAX自動填充多個文本字段。我有一個PHP腳本,這裏的代碼返回我的結果行:PHP和MYSQL AJAX - 自動填充多個文本字段

echo '<li onClick="fill(\''.$result->name.'|'.$result->id.'\');">'.$result->name.'</li>'; 

請注意,我我分隔條件的結果與一個pipestem字符。

這裏是函數,我收到錯誤'未定義或不是一個對象'我打破了價值觀,並使用pipestem分裂從MySQL值。

function fill(thisValue) { 
    myvalues=thisValue.split('|') { 
     $('#inputString').val(myvalues[0]); 
     $('#email').val(myvalues[1]); 
    } 
    window.setTimeout("$('#suggestions').hide();", 200); 
} 

如果我「OK」的錯誤信息,我會最終看到文本字段中顯示這兩個值,所以我相信我從MySQL正確以便在檢索值。我感謝任何人都可以提供的幫助,讓我以正確的方向或全新的視角進行指導。再次感謝 , --Matt

+0

語法錯誤 - myValues = thisValue.split ...這行應該以var開頭,並以分號結尾並去掉下兩行的大括號。 – James 2011-06-10 13:25:55

+0

詹姆斯,我嘗試了你的建議,非常感謝你花時間提供你的建議。我仍然收到相同的錯誤消息。未定義爲null或不是 - var myvalues = thisValue.split('|');謝謝 – 2011-06-10 14:08:21

回答

0

值要傳遞變成thisValue爲空或未定義。你可以在盲目地試圖分割它之前測試這個參數(分割函數只對字符串起作用)。

function fill(thisValue) { 
    // "value" will always be a string 
    var value = thisValue ? String(thisValue) : ''; 

    // this line will not generate an error now 
    var myvalues=value.split('|'); 

    // but these ones might! make sure the length of myvalues is at least 2 
    if (myvalues.length >= 2) { 
     $('#inputString').val(myvalues[0]); 
     $('#email').val(myvalues[1]); 
    } 
    // this might need to go inside the above if 
    window.setTimeout("$('#suggestions').hide();", 200); 
} 
+0

詹姆斯,非常感謝您抽出寶貴的時間來列出關於我所看到的意見!我非常感謝你告訴我如何做到這一點,而不是爲我做。我根據您的意見做了一些更改,腳本運行良好!再次感謝您向我展示如何做到這一點! – 2011-06-10 14:47:19

0

試試這個:

function fill(thisValue) { 
    myvalues=thisValue.split('|'); 

    $('#inputString').val(myvalues[0]); 
    $('#email').val(myvalues[1]); 

    window.setTimeout("$('#suggestions').hide();", 200); 
} 
+0

感謝您花時間回答這個帖子Rakesh。我已經實現了你的建議,並且我收到了錯誤消息:錯誤:'undefined'爲null或者不是這行代碼中的對象 - myvalues = thisValue.split('|'); – 2011-06-10 12:57:31

+0

你爲'thisValue'得到了什麼,你能提醒還是記錄下來?粘貼在這裏。 – 2011-06-10 13:08:38

+0

查看這裏的工作示例... http://jsfiddle.net/srakesh/u56sA/1/ – 2011-06-10 13:11:52