显示用户配置文件的进度图像

时间:2014-05-27 16:55:02

标签: php if-statement

我试图显示用户按图片序列填写用户个人资料的进度。

例如,如果用户填写了他们的名字,将显示进度图像2。 如果用户填写了他们的名字和生物,将出现进度图像3,依此类推......

我尝试使用if和elseif语句,但只显示进度图像2。

基本上,我只想根据用户在完成用户个人资料表单方面取得的进展来展示一张图片。

这是我的代码。

<?php
$name = ($data->first_name);
$bio = ($data->bio);
$address = ($data->street1);
$phone = ($data->phone);
$ec = ($data->e_contact);
$ecp = ($data->e_phone);
$bs = ($data->bs);

if($name == true){?>
    <img src="../images/progress2.png" class="img-max-progress">
<?php }


elseif($name.$bio == true){?>
    <img src="../images/progress3.png" class="img-max-progress">
<?php 
} 

elseif($name.$bio.$address == true){?>
    <img src="../images/progress4.png" class="img-max-progress">
<?php 
} 

elseif($name.$bio.$address.$phone == true){?>
    <img src="../images/progress5.png" class="img-max-progress">
<?php 
}

elseif($name.$bio.$address.$phone.$ec == true){?>
    <img src="../images/progress6.png" class="img-max-progress">
<?php 
}

elseif($name.$bio.$address.$phone.$ec.$ecp == true){?>
    <img src="../images/progress7.png" class="img-max-progress">
<?php
}

elseif($name.$bio.$address.$phone.$ec.$ecp.$bs == true){?>
    <img src="../images/progress8.png" class="img-max-progress">
<?php
}
?>

<?php
if($name != true){?>
    <img src="../images/progress1.png" class="img-max-progress">
<?php 
 }
?>

我填写了表单,所以progress8.png应该是显示的图片, 但progress2.png目前正在显示。

使用@ user3132781和@vlzvl答案之间的组合,我得到了这样的工作。

<?php
$name = ($data->first_name);
$bio = ($data->bio);
$address = ($data->street1);
$phone = ($data->phone);
$ec = ($data->e_contact);
$ecp = ($data->e_phone);
$bs = ($data->bs);
$completed = 0;

if (empty($name)) {
    $completed += 1;
}
if (!empty($name)) {
    $completed += 2;
}

if (!empty($bio)) {
    $completed += 1;
} 

if (!empty($address)) {
    $completed += 1;
} 

if (!empty($phone)) {
    $completed += 1;
}
if (!empty($ec)) {
    $completed += 1;
}
if (!empty($ecp)) {
    $completed += 1;
}
if (!empty($bs)) {
    $completed += 1;
}
echo '<img src="../images/progress' . $completed .'.png" class="img-max-progress">';
?>

3 个答案:

答案 0 :(得分:0)

嗯......我会尝试一下以下几点:

if($name){
   img 1
}
elseif ($name && $bio){
   img 2
}

等。

最后一行是:

if(!$name){
   img progress1
}

答案 1 :(得分:0)

试试这个(它也更清洁):

<?php
$name = ($data->first_name);
$bio = ($data->bio);
$address = ($data->street1);
$phone = ($data->phone);
$ec = ($data->e_contact);
$ecp = ($data->e_phone);
$bs = ($data->bs);

if($name == true) {
    echo '<img src="../images/progress2.png" class="img-max-progress">';
}

elseif($name== true && $bio == true) {
    echo '<img src="../images/progress3.png" class="img-max-progress">';
} 

elseif($name== true && $bio == true && $address == true) {
    echo '<img src="../images/progress4.png" class="img-max-progress">';
} 

elseif($name== true && $bio == true && $address == true && $phone == true) {
    echo '<img src="../images/progress5.png" class="img-max-progress">';
}

elseif($name== true && $bio == true && $address == true && $phone == true && $ec == true) {
    echo '<img src="../images/progress6.png" class="img-max-progress">';
}

elseif($name== true && $bio == true && $address == true && $phone == true && $ec == true && $ecp == true) {
    echo '<img src="../images/progress7.png" class="img-max-progress">';
}

elseif($name== true && $bio == true && $address == true && $phone == true && $ec == true && $ecp == true && $bs == true) {
    echo '<img src="../images/progress8.png" class="img-max-progress">';
}

if($name != true) {
    echo '<img src="../images/progress1.png" class="img-max-progress">';
}

您可能想要将== true更改为@vlzvl所说的内容(检查变量是否为空)

答案 2 :(得分:0)

我有另一种方法 - 仅作为建议:

$completed = 0;

if (isset($name)) {
    $completed += 1;
}

if (isset($adress)) {
    $completed += 1;
}

..... and so on for all the fields

//$completed can be used for defining the image
echo '<img src="../images/progress' . $completed .'.png" class="img-max-progress">';