我不確定如何解釋這個詞,所以我將展示一個示例。我在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?
'var_dump($ bulletlabels);'你會發現它不是你所信的。你可以做的就是使用適當的JSON語法,然後使用'json_decode()'發佈的字符串得到一個數組 – kero
從'$ _POST'數組獲得值後,使用'print_r'或'var_dump'來查看你有什麼。我想你會發現它是一個只有一個元素的字符串數組。 – Kryten