2013-07-21 64 views
0

我的問題是:我通過POST請求得到變量「數據」在Javascript中,像這樣的:分離數據

var data = name1 text1 name2 text2 name3 text3; 

如何劃分每個數據元素在這樣的變量:

var group1 = name1 - text1; 
var group2 = name2 - text2; 
var group3 = name3 - text3; 

然後我決定把一個分離器在PHP,字符「 - 」每個組(變量),這將形成,然後用JavaScript函數「分割()」的字符串處理。問題是在文本中還可能有「 - 」字符和任何其他字符,如何在不使用JSON的情況下像示例中那樣進行saparare?我控制服務器端(PHP)或客戶端(Javascript)。

+0

如果你可以控制'data'的格式,我建議你把它作爲一個數組來傳遞,而不是一個字符串。 – Teemu

+0

這可能嗎?變量「data」是來自POST請求的服務器響應。如何在不使用JSON的情況下獲得數組? – user2584820

+0

'var data = name1 text1 name2 text2 name3 text3;'是無效的JavaScript,你真的在​​做什麼?顯示一些實際工作的最小代碼,以便我們知道你在做什麼,從而可以在不猜測的情況下回答你的問題。 –

回答

0

我打算對你的php代碼是什麼樣子做一個寬泛的假設,因爲你很方便地將它遺漏了。我想象它看起來像這樣(從我的頭頂,實際上可能不工作):

$response = ''; 
mysql_query('select name, text from mytable'); 
while ($row = mysql_fetch_assoc()) { 
    $response = $row['name'] . ' ' . $row['text'] . ' ' .$response; 
} 
echo $response; 

而應該用這樣的對象作出迴應:

$response = array(); 
mysql_query('select name, text from mytable'); 
while ($row = mysql_fetch_assoc()) { 
    $response[$row['name']] = $row['text']; 
} 
echo json_encode($response); 

然後,在你的JavaScript,它看起來就像這樣:

var data = {"name1": "text1", "name2": "text2", "name3": "text3"}; 

而且你可以創建你的組是這樣的:

var groups = []; 
for (var name in data) { 
    groups.push(name + " - " + data[name]); 
} 

可創建您想要的這些組的數組。