2014-06-23 31 views
0

我不確定如何解釋這個詞,所以我將展示一個示例。我在javascript中收集輸入值並傳遞給我的php頁面,我試圖將這些值插入到數據庫中。數組值不能單獨插入到數據庫中

不插入單獨的值,而是插入整個字符串。

部分低於我的JavaScript的:

var form = document.forms[0]; 
var txtS = form["bulletlabels"]; 
var len = txtS.length; 
var bulletlabels = ""; 
for(i=0;i<len;i++) { 
    bulletlabels += '"'+[i]+'_'+(txtS[i].value)+'_label",'; 
    } 

當我做警報(bulletlabels);我得到這個:

"0_Lot Size_label","1_Rooms_label","2_Bathrooms_label","3_Basement_label",

在我的PHP頁面我有:

$bulletlabels = array($_POST['bulletlabels']); 

$length = count($bulletlabels); 
for ($i = 0; $i < $length; $i++) { 
mysqli_query($con,"UPDATE bullets SET bullettitle = '".$bulletlabels[$i]."' WHERE bulletrow = ($i+1)"); 
} 

這就將下面的字符串插入一行數據庫這是不想要的效果:

"0_Lot Size_label","1_Rooms_label","2_Bathrooms_label","3_Basement_label",

但這裏是我的困惑的關鍵 - 如果我手動鍵入字符串,它inser根據需要將其分配到各個數據庫行中

此單獨插入值手動輸入時,根據需要:

$bulletlabels = array("0_Lot Size_label","1_Rooms_label","2_Bathrooms_label","3_Basement_label",);

不工作,插入完整連接字符串: $bulletlabels = array($_POST['bulletlabels']);

希望我解釋不夠好 - 陣列躲避我。

編輯:
修正了尾隨逗號:

var delim = ""; 
for(i=0;i<len;i++) { 
bulletlabels += delim+[i]+'_'+(txtS[i].value)+'_label'; 
delim = ","; 
} 

參考鏈路用於拖拽逗號修正:

Can you use a trailing comma in a JSON object?

+0

'var_dump($ bulletlabels);'你會發現它不是你所信的。你可以做的就是使用適當的JSON語法,然後使用'json_decode()'發佈的字符串得到一個數組 – kero

+0

從'$ _POST'數組獲得值後,使用'print_r'或'var_dump'來查看你有什麼。我想你會發現它是一個只有一個元素的字符串數組。 – Kryten

回答

1

嘗試改變下面的行:

$bulletlabels = array($_POST['bulletlabels']); 

$bulletlabels = explode(',', $_POST['bulletlabels']); 

也不要加在你的JavaScript報價:

bulletlabels += '"'+[i]+'_'+(txtS[i].value)+'_label",'; 

應該

bulletlabels += [i]+'_'+(txtS[i].value)+'_label,'; 

說明:

目前,$ bulletlabels是一個數組一個元素,這個元素如下字符串:"0_Lot Size_label","1_Rooms_label","2_Bathrooms_label","3_Basement_label",。但是,您希望有一個包含多個字符串的數組。這就是爲什麼您需要使用the explode function將其轉換爲適當的陣列。

注:

確保不包括在標籤名稱中,,因爲它會與此實現突破。如果您還需要使用,,則應使用json函數。

+0

當然,這是行不通的。在這種情況下添加了一個提示,以使用json的答案。 – Christian

+0

儘管我相信你應該使用JSON而不是解決方法,但是你不能改變OP的想法 - 這麼好的答案和+1;) – kero

+0

我嘗試了你的解決方案並考慮了你對逗號問題的建議。請參閱我的編輯 - 我發現一個解決方案尾隨逗號這裏 - http://stackoverflow.com/questions/201782/can-you-use-a-trailing-comma-in-a-json-object但我希望這是可以接受的編碼實踐,因爲我沒有受過您所指的json函數的教育。我會將你的標記作爲答案,我很欣賞這個解釋! – user3272646