2

PHP if条件だけでテキストコンテンツを表示しようとしていますが、いくつかのエラーがあり、エラーがどこにあるのかわかりません。

<?php
  if(
     isset($_POST['send']) &&
     !validateDiscp($_POST['Discp']) || !validateSize($_POST['Size'])
  ) : ?>

<div id="error">
  <ul>
    <?php if(!validateDiscp($_POST['Discp'])):?>
     <li><strong>Discription:</strong>Discription need to be larger then 10!</li>
    <?php endif?>
    <?php if(!validateSize($_POST['Size'])):?>
     <li><strong>Invalid Size:</strong> Size needs to bi S M L XL</li>
    <?php endif ?>
      </ul>
</div>

<?php elseif(isset($_POST['send'])):?>
<div id="error" class="valid">
  <ul>
    <li><strong>Congratulations!</strong> All fields are OK ;)</li>
  </ul>
</div>
<?php endif ;?>
4

3 に答える 3

1

外側のブロック全体を書き直します。代わりに次のようにします。

 <? if( isset($_POST['send'])&&  !validateDiscp($_POST['Discp']) || !validateSize($_POST['Size']) ) { ?>
        <div id="error">
            <ul>
               <?php if(!validateDiscp($_POST['Discp'])) { ?>
                    <li><strong>Discription:</strong> Discription need to be larger then 10!</li>
                <?php } ?>
                <?php if(!validateSize($_POST['Size'])) { ?>
                    <li><strong>Invalid Size:</strong> Size needs to bi S M L XL</li>
                <?php } else { 
        $nothing = true;
                 ?>



            </ul>
        </div>

    <?php if( isset( $nothing ) and isset($_POST['send'] ) ) { ?>
        <div id="error" class="valid">
            <ul>
                <li><strong>Congratulations!</strong> All fields are OK ;)</li>
            </ul>
        </div>

     <? } ?>

あなたのロジックの欠陥は、else ステートメントがぶら下がっていることだと思います。代わりに、else ケースがいつヒットしたかを検出するための小さなロジックを追加し、追加のロジックと準備を追加します。

于 2012-09-13T22:23:53.683 に答える
1

それらの後にすべてのendifs が必要;です。また、これが実際のエラーなのか、コードがラップされているだけなのかはわかりませんが、最初のif行がすべて 1 行になっていることを確認してください。

于 2012-09-13T22:24:30.510 に答える
0

物事を変更した後、ここで機能しているコードは次のとおりです

        <?php if(isset($_POST['send']) && !validateDiscp($_POST['Discp'])|| !validateSize($_POST['Size'])  ):?>

    <div id="error">
                <ul>
                    <?php if(!validateDiscp($_POST['Discp'])):?>
                        <li><strong>Discription:</strong> Discription need to be larger then 10!</li>
                    <?php endif;?>
                    <?php if(!validateSize($_POST['Size'])):?>
                        <li><strong>Invalid Size:</strong> Size needs to bi S M L XL</li>
                    <?php endif; ?>



                </ul>
            </div>
    <?php elseif(isset($_POST['send']) ):?>
于 2012-09-14T14:24:59.007 に答える