0

モバイル ランディング ページを作成しています。また、テンプレート ファイルをホストするフォルダーを複製することで、さらに多くのページを作成できるフォームも作成しました。スクリプトは、会社の詳細を 1 つずつ入力して [送信] を押すページに移動します。すると、ページが作成されます。

私の問題は、フィールドが省略されている場合 (YouTube など)、ボタンが作成されて空白になることです。テキストがない場合のデフォルトのテキストがあればいいのにと思います。私はいくつかのことを試しましたが、これを DAYS で機能させるのに苦労しています!

    <?php 
$company = $_POST["company"];
$phone = $_POST["phone"];
$colour = $_POST["colour"];
$email = $_POST["email"];
$website = $_POST["website"];
$video = $_POST["video"];
?>

<div id="contact-area">

<form method="post" action="generate.php"><br>
<input type="text" name="company" placeholder="Company Name" /><br>
<input type="text" name="slogan" placeholder="Slogan" /><br>
<input class="color {required:false}" name="colour" placeholder="Company Colour"><br>
<input type="text" name="phone" placeholder="Phone Number" /><br>
<input type="text" name="email" placeholder="Email Address" /><br>
<input type="text" name="website" placeholder="Full Website - Include http://" /><br>
<input type="text" name="video" placeholder="Video URL" /><br>
<input type="submit" value="Generate QuickLinks" style="background:url(images/submit.png) repeat-x; color:#FFF"/>
</form>

それがフォームです。変数を受け取り、それらを以下のファイルに投稿します。

<?php 
 $File = "includes/details.php"; 
 $Handle = fopen($File, 'w');
 ?>

 <?php 
 $File = "includes/details.php";
 $Handle = fopen($File, 'w');
 $Data = "<div id='logo'>
          <h1 style='color:#$_POST[colour]'>$_POST[company]</h1>
          <h2>$_POST[slogan]</h2>
          </div>

<ul data-role='listview' data-inset='true' data-theme='b'>
       <li style='background-color:#$_POST[colour]'><a href='tel:$_POST[phone]'>Phone Us</a></li>
       <li style='background-color:#$_POST[colour]'><a href='mailto:$_POST[email]'>Email Us</a></li>
       <li style='background-color:#$_POST[colour]'><a href='$_POST[website]'>View Full Website</a></li>
       <li style='background-color:#$_POST[colour]'><a href='$_POST[video]'>Watch Us</a></li>
       </ul>

 \n";

 fwrite($Handle, $Data); 
 fclose($Handle); 
 ?>

そして形が変わるものがあります。フィールドが空白のままになっている場合に備えて、デフォルトのリンクを入れる必要があります。よろしくお願いします。

4

4 に答える 4

1

すべての要素に次のようなものを使用してください。

    $company = trim($_POST["company"]);

    if (!isset($company) || empty($company)) {
        $company = "Not filled in";
    }

スペースが確実に無視されるようにトリムを追加しました

于 2012-06-21T16:32:19.433 に答える
0

アクセスを関数でラップすると、通常、post変数を操作する方が簡単です。

function post($key, $default = '') {
  if (!isset($_POST[$key])) return $default;

  $value = trim($_POST[$key]);
  if ($value == '')
    return $default;
  else
    return $value;
}

これで、次のように変数を割り当てることができます。

$company = post('company');
$phone = post('phone', 'Not provided');
$colour = post('colour', 'blue');
... and so on...
于 2012-06-21T20:57:51.527 に答える
0

各変数に次の形式を使用します。

$company = (isset($_POST["company"]) && !empty($_POST["company"]))? $_POST["会社"]:"";

"" の末尾に任意のデフォルト値を割り当てることができます。

于 2012-06-21T16:38:28.770 に答える
-1

次のようなコードで変数定義をラップするだけで済むでしょうか。

if (strlen($_POST["company"]) > 0) {
    $company = $_POST["company"];
} else {
    $company = "default company";
}

これにより、ユーザーのデータが存在する場合に上書きされるデフォルト値を指定できます。

于 2012-06-21T16:31:09.037 に答える