0

我正在创建一个移动登录页面,并且我还创建了一个表单,通过复制一个托管到模板文件的文件夹,我可以创建更多内容。然后,该脚本会将您带到一个页面,您可以在其中一一输入公司详细信息并按提交。然后创建页面。

我的问题是,当一个字段被遗漏(例如 YouTube)时,按钮被创建并且是空白的。我希望在没有文本时有一个默认文本。我已经尝试了一些事情,并且一直在努力使这项工作好几天!

    <?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

对每个变量使用以下格式:

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

末尾的“”可以分配任何默认值。

于 2012-06-21T16:38:28.770 回答
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 回答
-1

您可以简单地将变量定义包装在代码中,例如:

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

这将允许您指定一个默认值,如果有的话,该默认值将被用户数据覆盖。

于 2012-06-21T16:31:09.037 回答