我有2个阵列 第一个数组具有文本中简单DB的表名 第二个数组具有每个表的值。
当我启动表单时,字段值从表单发送并具有表数组的相等值,从表单中获取值。
剧本:
<?php
if($_POST[send]=="ok") {
/// The structure it´s that and fixed , in the array_1 and 2 ///
$tables="name,phone,alias";
$values="Jhon,55543232,johny25";
/// Explode values in each case ///
$exp_tables=explode(",",$tables);
$exp_values=explode(",",$values);
/// Array for get values for each field ///
$i=0;
foreach($exp_tables as $exp_table) { ${$exp_table}[]="".$exp_values[$i].""; $i++; }
/// Bucle for get the result if vars send by form equal to the other vars and change by new value send form the form ///
foreach($exp_tables as $table) {
foreach($_POST as $key=>$value) {
if($table=="".$key."")
{
print "".$_POST[$table]."";
}
else { print "".${$table}{0}."";}
}
}
}
?>
html表格
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit2" value"send" />
<input type="hidden" name="send" value="ok" />
</form>
在表格中我在第一个字段和数组表中有“name”,我有一个字段也称为name。
当我发送表格时,我必须得到这个:
Jhon(change value by the value from the form),55543232,johny25
问题是它重复所有时间值而没有得到结果。
我的问题是:如何解决这个问题,以便将我从表单发送的值放入其中,并在其他值与数组表中的名称相同时更改,但不能很好地工作。
答案 0 :(得分:0)
首先,您的变量$tables
和$values
不是数组而是字符串。
数组看起来像
array(value, value, value)
或
array( key=> value, key=> value, key value)
在您的情况下,您可以使用
$tables=array('name','phone','alias');
$values=array('Jhon','55543232','johny25');
//or, to make even simpler
$values=array('name'=>'Jhon','phone'=>'55543232','alias'=>'johny25');
然后,如果您只想输出名称并检查名称是否与数组中的名称不同,您只需执行以下操作:
if($_POST['name']==$values['name']){
print "".$_POST['name']."";
}
else{
print "".$values['name']."";
}