2012-07-24 82 views
1

我想下面的信息添加到一个变量,(该TXT-通过-HN文本输入框是门牌号码,上班时间,通过在地址信息)PHP - 添加多个文本框的值的文本值的变量

$vias =   $_POST['txt-via-hn2'].' '.$_POST['txt-via2'] 
       .$_POST['txt-via-hn3'].' '.$_POST['txt-via3'] 
       .$_POST['txt-via-hn4'].' '.$_POST['txt-via4'] 
       .$_POST['txt-via-hn5'].' '.$_POST['txt-via5'] 
       .$_POST['txt-via-hn6'].' '.$_POST['txt-via6'] 
       .$_POST['txt-via-hn7'].' '.$_POST['txt-via7'] 
       .$_POST['txt-via-hn8'].' '.$_POST['txt-via8'] 
       .$_POST['txt-via-hn9'].' '.$_POST['txt-via9'] 
       .$_POST['txt-via-hn10'].' '.$_POST['txt-via10']; 

我是相当新的PHP,所以我也不太清楚如何去这样做,但基本上,我需要这是在格式如下:

$vias = <vias> 
     <vh1>$_POST['txt-via-hn2']</vh1><vi1>$_POST['txt-via2']</vi1> 
     <vh2>$_POST['txt-via-hn3']</vh2><vi2>$_POST['txt-via3']</vi2> 
     <vh3>$_POST['txt-via-hn4']</vh3><vi3>$_POST['txt-via4']</vi3> 
     <vh4>$_POST['txt-via-hn5']</vh4><vi4>$_POST['txt-via5']</vi4> 
     <vh5>$_POST['txt-via-hn6']</vh5><vi5>$_POST['txt-via6']</vi5> 
     <vh6>$_POST['txt-via-hn7']</vh6><vi6>$_POST['txt-via7']</vi6> 
     <vh7>$_POST['txt-via-hn8']</vh7><vi7>$_POST['txt-via8']</vi7> 
     <vh8>$_POST['txt-via-hn9']</vh8><vi8>$_POST['txt-via9']</vi8> 
     <vh9>$_POST['txt-via-hn10']</vh9><vi9>$_POST['txt-via10']</vi9> 
     </vias> 

而且,如果示例$_POST['txt-via-hn10'] & $_POST['txt-via10']是空的,是否有可能是<vh9> and </vh9>不包含在变量中吗?

任何帮助,将不胜感激! :)

回答

0

检查,如果一个变量存在,你可以使用isset()功能检查,然后确定要打印在此基础上的。使用条件表达式就变成了:

(isset($_POST['txt-via-hn10']) && isset($_POST['txt-via10'])) 
?'<vh9>'.$_POST['txt-via-hn10'].'</vh9><vi9>'.$_POST['txt-via10'].'</vi9>' 
: '' 

为你想生成自变量是类似的,你可以使用一个for环串,随病情上面我里面写检查是否存在等变量和行添加到您的循环外初始化字符串$vias

$number_of_field = count($_POST); 
$vias = '<vias>'; 
for($i = 1; $i<=$number_of_field; $i++){ 
$vias .=(isset($_POST['txt-via-hn'.$i]) && isset($_POST['txt-via'.$i])) 
?'<vh'.($i-1).'>'.$_POST['txt-via-hn'.$i].'</vh'.($i-1).'><vi'.($i-1).'>'.$_POST['txt-via'.$i].'</vi'.($i-1).'>' 
: '' 
} 
$vias .= '</vias>'; 
0

您应该开始更改您的表单以获取值添加到数组。 您可以通过将字段名称更改为'门牌号码[]'来完成此操作。

对地址细节字段做同样的操作。

然后循环产生的两个$ _POST数组并创建最终的xml,如字符串。

我在下面制作了一个快速示例。

form.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 
    <title></title> 
</head> 
<body> 
    <form action="action.php" method="post"> 
     <input type="text" name="housenumber[]" id="" /> 
     <input type="text" name="detail[]" id="" /><br /> 
     <input type="text" name="housenumber[]" id="" /> 
     <input type="text" name="detail[]" id="" /><br /> 
     <input type="text" name="housenumber[]" id="" /> 
     <input type="text" name="detail[]" id="" /><br /> 
     <input type="text" name="housenumber[]" id="" /> 
     <input type="text" name="detail[]" id="" /><br /> 
     <input type="text" name="housenumber[]" id="" /> 
     <input type="text" name="detail[]" id="" /><br /> 
     <input type="submit" value="Submit" /> 
    </form> 
</body> 
</html> 

action.php的:

<?php 
$total_housenumbers = count($_POST['housenumber']); 
$vias = ''; 

for ($i = 0; $i < $total_housenumbers; $i++) { 
    if ($_POST['housenumber'][$i] != '' && $_POST['detail'][$i] != '') { 
     $vias .= $_POST['housenumber'][$i]. ' ' .$_POST['detail'][$i]. '<br />'; 
    } 
} 

echo $vias; 
?> 
0

使用PHP isset()函数来测试天气变量设置与否。并使用代码如下:

$vias = "<vias>"; 

if(isset($_POST['txt-via-hn2']) 
{ 
$vas=$vas."<vh1>".$_POST['txt-via-hn2']."</vh1>";  
} 

if(isset($_POST['txt-via2']) 
{ 
$vas=$vas."<vi1>".$_POST['txt-via2']."</vi1>";  
} 

... and continue as you need.. 



and at last 
$vias=$vias." </vias>"; 
1

这样做的最直接的方式是使用if来检查每行语句,如果$ _POST变量存在,如果真正将它们串联:

$vias = "<vias>"; 
$vias .= (isset($_POST['txt-via-hn2']) && isset($_POST['txt-via2'])) ? "<vh1>" . $_POST['txt-via-hn2'] . "</vh1><vi1>" . $_POST['txt-via2'] . "</vi1> " : null; 
. 
. 
. 
$vias .= "</vias>"; 

或者您可以使用FOR循环进行迭代,因为您在此处使用的是已公布的数字序列:

$vias = "<vias>"; 
for ($x = 1; $x < 10; ++$x) { 
    $vias .= (isset($_POST['txt-via-hn'.($x+1)]) && isset($_POST['txt-via'.($x+1)])) ? "<vh$x>" . $_POST['txt-via-hn'.($x+1)] . "</vh$x><vi$x>" . $_POST['txt-via'.($x+1)] . "</vi$x> " : null; 
} 
$vias .= "</vias>"; 
相关问题