0

PHP を使用してテキスト ボックスの値を設定しようとしていますが、この質問の解決策を試しました。

PHPの「if」ステートメント内にHTMLを埋め込むことはできますか?

これが私がやっていることです:

 <?php if(isset($_SESSION['date']) : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php else : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php endif;?>

しかし、これは私にはうまくいきません。<?php echo $_SESSION['date']?>これをフォームの先頭に挿入したところ、予想されるデータが表示されたため、有効で機能していることがわかります。誰かが私がここで間違っていることを教えてもらえますか?

機能していないとはっきり言いたいのですが、ページにレンダリングされるデータはありません。HTML は表示されません。上記のコードを削除すると、すべての HTML フィールドが期待どおりに表示されます。

4

3 に答える 3

2

$_SESSION['date'] の後に終了ブラケットがありません。また、echo ステートメントの後にいくつかのセミコロンがありません。コードは次のようになります。

<?php if(isset($_SESSION['date'])) : ?>
    <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']; ?>"/>
<?php else : ?>
    <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']; ?>"/>
<?php endif;?>

それが役立つことを願っています。

于 2013-11-06T02:02:54.493 に答える
1

おそらく、PHP 構成 (php.ini を参照) がエラーを非表示にするように設定されている可能性があります。このコードを php コードの先頭に配置すると、表示エラーが有効になります

<?php

// Report all PHP errors
error_reporting(E_ALL);

?>

コードのエラーは、if ステートメントの ")" が欠落していることです。これが実際のコードです。

<?php if(isset($_SESSION['date'])) : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php else : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php endif;?>
于 2013-11-06T02:04:21.663 に答える
1

他の人はあなたのステートメントに括弧がない問題を指摘していますifが、この種の HTML を 1 行に、PHP をもう 1 つの行に配置すると、読みにくく、デバッグが難しくなります。CMS セットアップで使用されるコードのテンプレート形式によって普及しています。しかし、私は純粋な PHP プログラミングのバックグラウンドを持っているので、そのコードのチャンクを次のように記述します。

<?php
  if (isset($_SESSION['date'])) {
    echo '<div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="' . $_SESSION['date']; . '"/>';
  }
  else {
    echo '<div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="' . $_SESSION['date']; . '"/>';
  }
?>

しかし、そうは言っても、あなたのコードを見てifelse同じ値を出力していますか? タイプミス?それとも、これは本番コードではなく、例の擬似コードですか?

于 2013-11-06T02:14:26.897 に答える