Php 数组值不单独插入数据库
我不确定该如何表达,所以我将展示一个示例。我正在收集javascript中的输入值,并将其传递到我的php页面,在那里我试图将这些值插入数据库中 它不是插入单独的值,而是插入整个字符串 下面是我的javascript的一部分:Php 数组值不单独插入数据库,php,arrays,insert,Php,Arrays,Insert,我不确定该如何表达,所以我将展示一个示例。我正在收集javascript中的输入值,并将其传递到我的php页面,在那里我试图将这些值插入数据库中 它不是插入单独的值,而是插入整个字符串 下面是我的javascript的一部分: var form = document.forms[0]; var txtS = form["bulletlabels"]; var len = txtS.length; var bulletlabels = ""; for(i=0;i<len;i++) {
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",';
}
这会将以下字符串插入到数据库中的一行中,但效果不理想:
“0批量标签”、“1房间标签”、“2浴室标签”、“3地下室标签”
但这是造成我困惑的关键——如果我手动键入字符串,它会根据需要插入到各个数据库行中
手动键入时,这会根据需要单独插入值:
$bulletlabels=数组(“0批量标签”、“1房间标签”、“2浴室标签”、“3地下室标签”)代码>
不起作用并插入完整的连接字符串:
$bulletlabels=数组($\u POST['bulletlabels'])代码>
希望我解释得足够好——我找不到数组
编辑:
修复尾随逗号:
var delim = "";
for(i=0;i<len;i++) {
bulletlabels += delim+[i]+'_'+(txtS[i].value)+'_label';
delim = ",";
}
var delim=”“;
对于(i=0;i尝试更改以下行:
$bulletlabels = array($_POST['bulletlabels']);
到
也不要在javascript中添加引号:
bulletlabels += '"'+[i]+'_'+(txtS[i].value)+'_label",';
应该是
bulletlabels += [i]+'_'+(txtS[i].value)+'_label,';
说明:
目前,$bulletlabels是一个包含一个元素的数组,而此元素是以下字符串:“0\u批量大小\u标签”、“1\u房间\u标签”、“2\u浴室\u标签”、“3\u地下室\u标签”、
。但是,您希望有一个包含多个字符串的数组。这就是为什么需要使用将其转换为正确的数组的原因
注意:
请确保不要在标签名称中包含,
,因为这将破坏此实现。如果您需要能够使用,
,也应该使用json函数。var_dump($bulletlabels);
您会发现这不是您所相信的。您可以做的是使用正确的json语法,然后使用json_decode()
生成数组的已发布字符串从$\u POST
数组中获取值后,使用print\u r
或var\u dump
查看您拥有的内容。我想您会发现它是一个只有一个元素的字符串数组。当然,这不起作用。在这种情况下,在答案中添加了使用json的提示。尽管我相信您应该无论如何,我都要使用JSON而不是解决方法,你不能改变OP的想法-答案很好,+1;)我尝试了你的解决方案,并考虑了你关于逗号问题的建议。请看我的编辑-我在这里找到了一个解决方案-但我希望这是可以接受的编码实践,因为我没有受过你所指的json函数的教育。我会记下你的答案,感谢你的解释!
bulletlabels += '"'+[i]+'_'+(txtS[i].value)+'_label",';
bulletlabels += [i]+'_'+(txtS[i].value)+'_label,';