2017-02-23 83 views
0

我在jquery中遇到了一個怪胎問題。當我嘗試從表中填充列表時,如果它包含像sid'ahmed這樣的特殊字符,它將變爲空。當我將其更改爲sidi ahmed時,它可以很好地工作。這是我的代碼來填充兩個列表:jquery填充列表怪胎錯誤

$.getJSON("get-data.php?dat=driver", function(data) { 
    var stringToAppend1 = "<option value='" + day_Shift + "'>" + day_Shift + "</option>"; 
    var stringToAppend2 = "<option value='" + night_Shift + "'>" + night_Shift + "</option>"; 

    $.each(data, function(key, val) { 
    stringToAppend1 += "<option value='" + val.prenom + "/" + val.nom + " : " + val.telephone + "'>" + val.prenom + "/" + val.nom + " : " + val.telephone + "</option>"; 
    stringToAppend2 += "<option value='" + val.prenom + "/" + val.nom + " : " + val.telephone + "'>" + val.prenom + "/" + val.nom + " : " + val.telephone + "</option>"; 
    }); 

    $("#night_Shift_text" + id).html(stringToAppend2); 
    $("#day_Shift_text" + id).html(stringToAppend1); 
}); 
+0

您是否試過轉義輸入?以這種方式從外部來源插入內容是一個不好的主意(XSS voulnerabilty)。它也會造成你的問題。 –

+0

單引號是字符串分隔符。你需要在它出現在字符串內時將其轉義:http://stackoverflow.com/questions/2428572/how-to-escape-single-quote,http://stackoverflow.com/questions/16134910/how-to- escape-a-quote-in-javascript – dlatikay

+0

它已經在數據庫中我只想用它來填充我的列表 – NoGodButAllah

回答

0

你應該使用替換功能,如下圖所示逃避單引號。使用這個替換無論需要。

day_Shift = day_Shift.replace(/'/g, "\\'"); 

希望這有助於!

+0

如何在我的例子中實現這個 – NoGodButAllah