2011-07-07 23 views
1

我試着去挽救這個字符串:使用PHP中的AJAX調用如何能夠拯救一個字符串,因爲它是在mysql數據庫

~`@#$%^&*()_+}{":?><,./;'[]=-|\ 

。但在數據庫中保存爲這樣:

~`@#$%^???? 

這是我的AJAX調用

function saveComment(timesheetId,activityId,date,comment,employeeId) { 

    var r = $.ajax({ 
     type: 'POST', 
     url: commentlink, 
     data: "timesheetId="+timesheetId+"&activityId="+activityId+"&date="+date+"&comment="+comment+"&employeeId="+employeeId, 
     async: false 
    }).responseText; 

    return r; 
} 

編輯:字符串和代碼的固定顯示。

+4

什麼是一個醜陋的字符串,以節省大聲笑 – dynamic

+0

這麼醜,所以無法妥善處理逃跑! – adarshr

+0

這是JavaScript代碼。 PHP代碼在哪裏? – Michas

回答

2

您需要在javascript中調用encodeURIComponent,然後才能將其發送到服務器。

編輯:Tomalak指出了一個更好的方法。

+0

w3schools是不是一個很好的資源... –

+0

好點,我已經修復 – Joe

0

如果你想在數據中放置一個變量'text',你應該在執行前通過$ .URLEncode(text)來運行它;實際上,文本中的'&'字符引入了一個新參數。

+0

'$ .URLEncode()'是特定於jQuery,請務必在您的答案中提到這一點。 –

+0

我覺得這是不相關的問題顯然是使用jQuery – boycy

0

jQuery支持一個對象作爲Ajax請求中的數據參數。這也自動爲您的URL編碼:

$.ajax({ 
    type: 'POST', 
    url: commentlink, 
    data: { 
    timesheetId: timesheetId, 
    activityId: activityId, 
    date:  date, 
    comment:  comment, 
    employeeId: employeeId 
    }, 
    success: function (data) { 
    alert(data); 
    } 
}); 

另外 - 你不應該使用同步的Ajax請求。始終使用回調函數。

+0

嗨感謝解決方案,它工作正常。它存儲在數據庫罰款,但我現在有一個問題時,再次檢索它.IT SHOWS like〜'@#$ %^ & *()_ +} {":? > <,。/; ' [] = - | \ " ??????????? – tim

+0

@tim它是HTML轉義的,但它對我來說看起來不錯。 – Tomalak

+0

如何獲得原始字符串? – tim