3

PHPパートがここにあるので、投稿すると、パートはまったく機能しません(つまり、設定したテキストが消えます)が、残りの半分は機能します(つまり、変数を割り当てることはできますが、空白のままにすることはできません)。私は一晩中それと格闘してきました...助けてください!これが2ページ目です。最初のページのコードを確認する必要がある場合は、お知らせください。

<?php
$lovers = $_POST['lovers'];
$quote = $_POST['quote'];
$color = $_POST['color'];
$font = $_POST['font'];
$imdblink = $_POST['imdblink'];
?>

<?php
if (isset($_POST['lovers']))  
    {
$lovers = $_POST['lovers'];
    }else{
        echo "P & M";
     }

if (isset($_POST['quote']))  
     {
        $quote = $_POST['quote'];
     }else{
        echo "I love you.";
     }

  if (isset($_POST['color']))  
     {
        $color = $_POST['color'];
     }else{
        echo "yellow";
     }

  if (isset($_POST['font']))  
     {
        $font = $_POST['font'];
     }else{
        echo "Futura";
     }

  if (isset($_POST['imdblink']))  
     {
        $imdblink = $_POST['imdblink'];
     }else{
        echo "http://www.imdb.com/";
     }
?>

ここにHTMLの部分があります:ここに何か問題がありますか?助けてください!

<div class="artGroup slide">
  <div class="artwork"> <img src="../_images/M&P.png">
    <div class="detail">
      <div class="movie01c" style="font-family: <?php echo "{$font}"; ?>; font-size: 20px; color: <?php echo "{$color}";?>;">
     <?php echo "{$quote}";?>
      </div>
      <div class="movie01t"><a href="<?php echo "{$imdblink}";?>">
      <?php echo "{$lovers}";?>
      </a></div>
    </div>
  </div>
</div>
4

9 に答える 9

5

を使用する代わりにecho、else部分でも変数代入を使用します。

if (isset($_POST['lovers'])) {
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}
于 2012-08-09T11:03:37.713 に答える
4

isset()は、変数が存在するかどうかを示します。フォーム(HTMLを表示しなかった)があり、誰かがフィールドを空白のままにした場合、フィールドは存在しますが空です。フォームの送信後にフォーム要素が存在しない方法はないため、isset()がFALSEを返すことはありません。したがって、isset()の代わりに!empty()を使用する必要があります。

于 2012-12-31T05:30:14.193 に答える
1

三項演算子を使用すると、非常に明確になります。

例えば:

$imdblink = ((isset($_POST['imdblink'])) ? ($_POST['imdblink']) : ('http://www.imdb.com/'));

さらに、デフォルト値を定義し、変数変数を使用する必要があります。(定義を使用しない例)

$vars = array('imdblink' => 'http://www.imdb.com/');
foreach ($vars as $varName => $defaultVal)
  $$varName = ((isset($_POST[$varName])) ? ($_POST[$varName]) : ($defaultVal));
于 2012-08-09T11:15:47.103 に答える
1

あなたの声明は次のようになるはずです...

if (isset($_POST['lovers']) && ($_POST['lovers'] != ''))
{
    $lovers = $_POST['lovers'];
}
else
{
    $lovers = "P & M";
}
于 2012-08-09T11:07:31.463 に答える
0

エコーしたくない、割り当てたい、そして他のPHPスクリプトでそれを印刷します。

$ _POST配列に含まれていない場合は、デフォルト値を設定しようとしていると思います。試す

$color = isset($_POST['color']) ? $_POST['color'] : 'yellow';

空白の色が必要ない場合は、

$color = !empty($_POST['color']) ? $_POST['color'] : 'yellow';
于 2012-08-09T11:08:19.187 に答える
0

これはうまくいくはずです

<?php
$lovers = isset($_POST['lovers']) ? $_POST['lovers'] : "P & M" ;
$quote = isset($_POST['quote'])? $_POST['quote'] : "I Love You";
$color = isset($_POST['color'])? $_POST['color'] : "yellow";
$font = isset($_POST['font']) ? $_POST['font'] : "Futura";
$imdblink = isset($_POST['imdblink'])? $_POST['imdblink']: "http://www.imdb.com/";
?>

issetフィールドが...空でないことを確認し!emptyたい場合は、に置き換えることができます

于 2012-08-09T11:08:28.920 に答える
0

isset$_post関数はすべて、それ以外の部分にはならないため、機能する可能性があります。

于 2012-08-09T11:19:14.113 に答える
0

issetfalse変数が設定されていないか、 に設定されている場合にのみ戻りますnulltrue変数が(空の文字列)の場合に返さ''れます。これは、最初のページのそのフィールドに値が入力されていない場合に取得される値になります。

emptyこれを正しく機能させるには、これを使用する必要があります。これは、設定されていtrueない空の vlu に対して返されます。false空でない値に対して for を返します。!ここで使用するには、先頭に (演算子ではなく)を追加する必要があります。

ifそして、とechoで変数の代入を使用していますelse。それが問題の原因だと思います。echoそれを割り当てに変更します。

if (!empty($_POST['lovers']))  
{
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}

忘れないでください!

于 2012-12-31T05:55:15.090 に答える