<input name="item[]" value="1" size="15" />
<input name="item[]" value="2" size="15" />
<input name="item[]" value="3" size="15" />
<input name="item[]" value="4" size="15" />
<input name="item[]" value="5" size="15" />
<input type="button" value="提交" />
</form>
JS脚本里写上document.forms[0].submit();提交到a.php页面。正常方式提交上去,在a.php接收$_POST['item']=array(1,2,3,4,5),这是一个数组来的,我现在需要在提交之前,将name=item[]的input值串联起来,处理成字符串的形式为(1,2,3,4,5),再POST方式提交上去,可以做吗?并应该如何弄呢?
8 个解决方案
#1
如果是在 php 端连接成字符串,php 已经提供了 join 和 implode 函数
如果是 js 完成,这已经超出本版讨论的范围了,提醒一下:就是的数组对象有一个 join 方法
如果是 js 完成,这已经超出本版讨论的范围了,提醒一下:就是的数组对象有一个 join 方法
#2
谢谢你,我需要是在JS完成,我也知道有个join方法,但是在提交的那一步,我不知道怎么处理才好。因为上面已经写了<form action="a.php" method="post">
#3
表单中加上一个隐藏域:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function() {
document.getElementsByTagName('form')[0].onsubmit = function() {
var ar_items = [];
var obj = this.getElementsByTagName('input');
for(var i = 0; i < obj.length; i ++) {
if (obj[i].name == 'item[]') ar_items.push(obj[i].value);
}
var str_items = '';
if (ar_items.length > 0) str_items = '(' + ar_items.join(',') + ')';
document.getElementById('ar_items').value = str_items;
}
}
</script>
</head>
<body>
<form action="a.php" method="post">
<input name="item[]" value="1" size="15" />
<input name="item[]" value="2" size="15" />
<input name="item[]" value="3" size="15" />
<input name="item[]" value="4" size="15" />
<input name="item[]" value="5" size="15" />
<input type="hidden" id="ar_items" name="ar_items" />
<input type="submit" value="提交" />
</form>
</body>
</html>
#4
serialize()对象序列化试试
提取时unserialize()
提取时unserialize()
#5
自己写个得到Array集合的方法
方法名叫GetPostList($变量)
然后页面所有文本框名称一样 后台取值就行
$a_value =@ $_POST[$变量名];
if (is_array($a_value))
{
foreach ($a_value as $i_key => $s_value)
{
$a_value[$i_key] = $s_value;
}
}
return $a_value;
方法名叫GetPostList($变量)
然后页面所有文本框名称一样 后台取值就行
#6
此答案为正解,我早上醒来,就想到这个办法最好,谢谢各位兄弟朋友的解答!
#7
路过学习了
#8
出于安全,推荐在服务端组装!
#1
如果是在 php 端连接成字符串,php 已经提供了 join 和 implode 函数
如果是 js 完成,这已经超出本版讨论的范围了,提醒一下:就是的数组对象有一个 join 方法
如果是 js 完成,这已经超出本版讨论的范围了,提醒一下:就是的数组对象有一个 join 方法
#2
谢谢你,我需要是在JS完成,我也知道有个join方法,但是在提交的那一步,我不知道怎么处理才好。因为上面已经写了<form action="a.php" method="post">
#3
表单中加上一个隐藏域:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function() {
document.getElementsByTagName('form')[0].onsubmit = function() {
var ar_items = [];
var obj = this.getElementsByTagName('input');
for(var i = 0; i < obj.length; i ++) {
if (obj[i].name == 'item[]') ar_items.push(obj[i].value);
}
var str_items = '';
if (ar_items.length > 0) str_items = '(' + ar_items.join(',') + ')';
document.getElementById('ar_items').value = str_items;
}
}
</script>
</head>
<body>
<form action="a.php" method="post">
<input name="item[]" value="1" size="15" />
<input name="item[]" value="2" size="15" />
<input name="item[]" value="3" size="15" />
<input name="item[]" value="4" size="15" />
<input name="item[]" value="5" size="15" />
<input type="hidden" id="ar_items" name="ar_items" />
<input type="submit" value="提交" />
</form>
</body>
</html>
#4
serialize()对象序列化试试
提取时unserialize()
提取时unserialize()
#5
自己写个得到Array集合的方法
方法名叫GetPostList($变量)
然后页面所有文本框名称一样 后台取值就行
$a_value =@ $_POST[$变量名];
if (is_array($a_value))
{
foreach ($a_value as $i_key => $s_value)
{
$a_value[$i_key] = $s_value;
}
}
return $a_value;
方法名叫GetPostList($变量)
然后页面所有文本框名称一样 后台取值就行
#6
此答案为正解,我早上醒来,就想到这个办法最好,谢谢各位兄弟朋友的解答!
#7
路过学习了
#8
出于安全,推荐在服务端组装!