如何用PHP收集表格中的数据?,如何用PHP收集表格中的数据?,如何用PHP收集表格中的数据?,Hi, all, 下面是我正在开发的一个网页: http://www.cookword.com/upload.htm 有很多 ingredient 组, 每组包含name, amount, unit, 和 description. 请大师们帮忙指点一下, 如何用PHP _POST 收集这些数据,最好用数组,这样代码比较简洁。深深鞠一躬, 谢谢!
股票入门 我的第一次 你在做什么 往期内容 休闲牧场预告 设猫扑虎为首页|收藏猫扑虎
如何用PHP收集表格中的数据?
来源:网络收集 作者:解语人 时间:2008-4-28 12:44:58

Hi, all, 下面是我正在开发的一个网页: http://www.cookword.com/upload.htm 有很多 ingredient 组, 每组包含name, amount, unit, 和 description. 请大师们帮忙指点一下, 如何用PHP _POST 收集这些数据,最好用数组,这样代码比较简洁。深深鞠一躬, 谢谢!
首先你的网页有错误,是无法提交数据的,因为你的</form>放的地方不对,应该在最后一个<input>之后,你直接放在<form>之后是错误的。

其次,对于<input type=text name=xxx>的多个域,系统只能接收到最后一的数值,不可能以数组方式接收的。

最后,要实现你的目的其实很简单:

第一<FORM>里面应该用JavaScript循环输出这些name, amount, unit的域,这样程序会非常简洁,例如代码这样:
<div id='allIngredients'>
<div class="arial12regular">
Name: <input name="inName_1" type="text" maxlength ="25" class="textbox100a">  
Amount: <input name="inAmount_1" type="text" maxlength ="6" class="textbox34a">  
Unit: <input name="inUnit_1" type="text" maxlength ="10" class="textbox45a"> <br>
Ingredient Description: <br>
<textarea name="ingredient_1" class="textbox400"></textarea><br><br>
</div>
</div>

<script language=javascript>
var countIngr=1;
function addIngr(){
countIngr++;
allIngredients.innerHTML+='<div class="arial12regular">'
+'Name: <input name="inName_'+countIngr+'" type="text" maxlength ="25" class="textbox100a">  '
+'Amount: <input name="inAmount_'+countIngr+'" type="text" maxlength ="6" class="textbox34a">  '
+'Unit: <input name="inUnit_'+countIngr+'" type="text" maxlength ="10" class="textbox45a"> <br>'
+'Ingredient Description: <br>'
+'<textarea name="ingredient_'+countIngr+'" class="textbox400"></textarea><br><br>'
+'</div>';
}
for (i=0;i<5;i++;) addIngr(); //先添加5个
</script>
<input type="button" value="Add More Ingredients" onClick="addIngr();" >

第二,PHP里面可以使用foreach来获取这些输入域的内容:
foreach ($_POST as $key=>$val){
if (preg_match("/^inName_(\d+)$/", $key, $reg)) $inName[$reg[1]]=$val;
if (preg_match("/^inAmount_(\d+)$/", $key, $reg)) $inAmount[$reg[1]]=$val;
if (preg_match("/^inUnit_(\d+)$/", $key, $reg)) $inUnit[$reg[1]]=$val;
if (preg_match("/^ingredient_(\d+)$/", $key, $reg)) $ingredient[$reg[1]]=$val;
}
这样就形成数组了。

更多友情链接>>>