<form action="__URL__/inster/" method="post">
<input style="width:90%; height:18px;" type="text" class="input-text" name="type" id="type" value=""/>
<input style="width:90%; height:18px;" type="text" class="input-text" name="money" id="money" value=""/>
<textarea style="width:90%; height:11px;"class="" name="bask" cols="32" id="bask" /></textarea>
</form>
中间的数据用JS增加了多条,在PHP中怎么写循环。我用的是TP框架
var cell = document.createElement("td");
//cell.appendChild(document.createTextNode(name));
var inputText = document.createElement("input");
inputText.setAttribute("type", "text");
inputText.setAttribute("name", "type");
inputText.style.border = "1px solid #A7A6AA";
inputText.style.width = "90%";
inputText.style.height = "18px";
//inputText.setAttribute("value", name);
cell.appendChild(inputText);
row.appendChild(cell);
inputText.setAttribute("name", "type"); type是表的字段,可能是这名字重复了
不循环不行,只写入一条数据
追答不是你只写了一条数据,因为你用的是js增加了多条嘛,增的的东西,好歹也是DOM元素吧,既然是DOM元素,又是表单项,后台就没有收不到的道理,只是在原码中你看不到这些东西罢了,你可以先试试,看看结果如何
追问我试过了,比如写三条数据只能插入一条到数据库
追答你可以这样,
echo '' . htmlspecialchars(print_r($_POST, true)) . '';die;
看看你得到的数据是不是对的,如果这里是对的,那你只需要组织下你的插入语句罢了,仅此而己
嗯,这样也只显示最后的一条,郁闷
追答那说明不是后台的问题,而是前台js增加表单项的时候,加的名称是不是重复了,最好把名称改成数组形式的如这样形式的
追问Array
(
[type] => 1
[money] => 1
[bask] =>
[type0] => 2
[money0] => 2
[bask0] =>
[type1] => 3
[money1] => 3
[bask1] =>
[type2] => 4
[money2] => 4
[bask2] =>
[__hash__] => 6fad457aaad0c29a3447e758df8eeb8d
)
现在用echo '' . htmlspecialchars(print_r($_POST, true)) . '';die;可以全部看到了,但是插入还是不行呢
插入的话,不就是组织组织你的数据,弄成SQL语句就行了啊,除了第一组,其它的就是从0开始计数的嘛,一组数据,加个循环,组装个SQL语句,一次执行就完成了呀
foreach($_POST['dform'] as $key=>$value){
$bo=$_POST['type'][$key][$value];
$bo=$_POST['money'][$key][$value];
$bo=$_POST['bask'][$key][$value];
}
我这么写怎么取不到值呢 'dform' 是表面名称
下面是数组的结构,高手麻烦你再指点一下,好了我加点分,谢谢!
'dform'是表面名称,这句话我看不懂呀。
首先图中那个数组有三个元素,索引($key)分别是 type, money, bask, __hash__ ,值($value)分别是一个数组,一个数组,一个数组,一个字符串; 所以图中那个是个二维数组。
foreach($_POST['dform'] as $key=>$value){
//获取 "测试一"
$bo=$_POST['dform'][$key][0];
//或者直接 $bo = $value[0]; 因为 $_POST['dform'][$key] 和 $value 是一样的。
// 获取所有的 type
foreach ($value as $v){
echo $v; // 这里直接输出,你也可以作其它处理,比如把 $v 赋值给其它变量等。
}
}
dform是指这个表单名,
用$_POST['dform']取不到任何值,还有我这个是多条插入,不用输出的
foreach($_POST['dform'] as $key=>$value){
$bo=$_POST['type'][$key];
$bo=$_POST['money'][$key];
$bo=$_POST['bask'][$key];
} 这样写不行
我想把值全部给$bo最后一起插入 __hash__ 这个可以不管
form 标签的 name 属性是没用的,一般用在 javascript 操作当前页面的DOM用。对于 PHP 获取表单值用不上。还有你的那个foreach循环中, 三次给 $bo赋值,到最后$bo只能保存一个值,而不能全部保存。 PHP 通过提交表单只能获取 input 、textarea、select等的值。
就拿下面代码说吧
————————————————————————————
PHP 代码:
<?php
$count = count($_POST['type']);
//这里可以 print_r($_POST['type']); 或 print_r($_POST['money']);看一下,其实$_POST['type']和 $_POST['money']都是个一维数组,所以可以用下面的 for 循环来访问
if($count == count($_POST['money'])){
$sql = array();
for($i=0; $i<$count; $i++){
$sql[] = "('{$_POST['type'][$i]}', '{$_POST['money'][$i]}') ";
}
$sqlstr = "insert into `table` (`type`, `money`) values ".implode(',', $sql);
echo $sqlstr;
//mysql_query($sqlstr); //假定前面已经打开到数据库的连接了,这里直接保存到数据库了。
}
PHP怎么获取表单中的多条数据
在生成的表单元素以及之前的元素的名字加上中括号即可实现 比如: name="contents" => name="contents[]",最后提交获取到的数据是一个数组形式的。代码如下: 1. 2. 3. <?php if($_GET['action'] == 'ok'){ contents = $_POST['contents'];print_r($contents);} ?> 得到的数据是...
php建立表单中很多个输入框上传值如何解决
1、根据不同name读取,如果是post传值的话$_POST['name1'],$_POST['name2'];2、如果都是同一个name的话,那么$_POST['name']就是一个数组了,只需要foreach这个数组就可以拿到值
PHP怎么获取表单提交的数据啊?
一、用file_get_contents以get方式获取内容,需要输入内容为:1、<?php 2、$url='http:\/\/www.domain.com\/?para=123';3、$html = file_get_contents($url);4、echo $html;5、?> 二、用file_get_contents函数,以post方式获取url,需要输入内容为 1、<?php 2、$url = 'http:\/\/www.domain...
php mysql 怎么同时搜索一个字段下的多个值
用循环吧 比如,输入了$str="a,b,c";arrs = expode(",",$str);for($i=1;$i<count($arrs);$i++){ sql="select * from student where name like ''%'".$arrs[$i]."%'"r = mysql_query9$sql);if($r){ }else{ } } 不知道你看 明白了没有。
在php怎么实现通过表单获取一些信息的输入这种功能?
"> <?php name=$_POST['name'];\/\/通过post方式获取 表单中的 name值 echo $name; \/\/输出获取到的name值。?> 使用方法,新建一个 .php的文件,将该代码拷贝进去,然后放出php环境,访问该文件即可。纯手打,望采纳,可追问。
PHP编程,请问多次提交表单后如何保存数据,不用数据库或文本保存数据
数组应该是不适合吧,脚本执行后,数组就消失了。session_start();_SESSION[keyname]=array();_SESSION[keyname][]=$_POST['inputname'];这样就可以随时引用这个值了 在你的html的页面上想要输出的位置 <?php echo $_session[keyname][0].$_session[keyname][1] \/\/多的话可以改成循环输出 ...
php新手在线等答案:用php如何让提取html表单中输入的数据???
在form中,的属性method=get 或者post方法,在php中获取表单数据如下:_get[表单名]_post[表单名]这样就可以获取到html中表单里面的数据信息
php怎样获取下拉表单中的值
商品介绍:<textarea name="desc" value="desc"><\/textarea> <?phpif($_GET['action'] == '确认'){$contents = $_POST['pice'];echo $contents;}?>
PHP 表单添加多条数据到数据库
name="name2[]"> 提交后$_POST['name1']、$_POST['name2']都会以数组的方式储存着3行tr的每个值,通过foreach可以把它们逐行添加进数据表
急!!!php怎样获取表单的数据,我的代码是这样的,求解决
很明显你的表单对象的 name 设置有问题啊,复选框采用数组,其他可以不用,你初学就不要偷懒直接在DW中复制文本框,这样容易导致 name 和id 属性不对,还是老实点一个一个的插入吧,或者手动修改下属性。<?php if (isset($_POST['submit'])){ print_r($_POST);} ?> <!DOCTYPE html PUBLIC ...