如果field =回声...否则

时间:2019-08-29 06:19:31

标签: php if-statement

在报告中,我试图根据字段的值显示签名。 因此,我在html内添加了php。

<?php

if ($lawyer == "DS") {
    echo '<div class="signature">
<p class="boldcentrado">
E.D.</br>
Lawyer</p></div>
<div class="assinaturacaixa">
<p class="boldcentrado">DS</p>
</div>';
} else {
    echo '<div class="signature">
<p class="boldcentrado">
E.D.</br>
Lawyer</p></div>
<div class="assinaturacaixa">
<p class="boldcentrado">PM</p>
</div>';
}
?>

如果“律师”字段等于“ DS”,则应“显示”:

<div class="signature">
<p class="boldcentrado">
E.D.</br>
Lawyer</div>
<div class="assinaturacaixa">
<p class="boldcentrado">DS</p>
</div>

如果是其他任何值,请显示:

<div class="signature">
<p class="boldcentrado">
E.D.</br>
Lawyer</div>
<div class="assinaturacaixa">
<p class="boldcentrado">PM</p>
</div>

问题是,无论字段值是多少,它总是显示第一个选项。

2 个答案:

答案 0 :(得分:0)

这可能是由于if语句中匹配项区分大小写所致。 我获取了您的代码,并创建了一个小的测试脚本来向您展示它的行为(为了方便调用,我确实对您的代码进行了功能)

<?php

function show($lawyer) {

    if ($lawyer == "DS") {
        echo '<div class="signature">
    <p class="boldcentrado">
    E.D.</br>
    Lawyer</div>
    <div class="assinaturacaixa">
    <p class="boldcentrado">DS</p>
    </div>';
    } else {
        echo '<div class="signature">
    <p class="boldcentrado">
    E.D.</br>
    Lawyer</div>
    <div class="assinaturacaixa">
    <p class="boldcentrado">PM</p>
    </div>';
    }
}

// This shows the DS 
echo "Lawyer is DS -- Should show DS:";
show("DS");


// these show PM
echo "lawyer = NOPE:";
show("NOPE");

echo "lawyer = NP:";
show("NP");

echo "lawyer = <empty>:";
show("");

// And due to case sensitivity this wont show DS either
echo "lawyer = ds <-- lower case:";
show("ds");

我想告诉你一件事。如果只有单个字段需要更改,最好将页面重构为类似以下内容:

<div class="signature">
    <p class="boldcentrado">
    E.D.</br>
    Lawyer</p>
</div>
<div class="assinaturacaixa">
    <p class="boldcentrado"><?=getExpectedFieldValue(...)?></p>
</div>

并使该函数相应地返回DS或PM。

答案 1 :(得分:0)

您的代码可以正常工作。测试并更改$ lawyer确实在执行预期的操作。

您的代码看起来很可怕。从您的PHP中尽可能拆分HTML

<?php

$lawyer = 'S';

if ($lawyer == "DS") : ?>
<div class="signature">
    <p class="boldcentrado">
        E.D.</br>
        Lawyer</p>
</div>
<div class="assinaturacaixa">
    <p class="boldcentrado">DS</p>
</div>
<?php else: ?>
<div class="signature">
    <p class="boldcentrado">
        E.D.</br>
        Lawyer</p>
</div>
<div class="assinaturacaixa">
    <p class="boldcentrado">PM</p>
</div>

<?php endif; ?>

更改律师的价值被淘汰,因此您申请的律师的价值始终为“ DS”