【问题标题】:How to input PHP into HTML placeholder?如何将 PHP 输入到 HTML 占位符中?
【发布时间】:2016-05-14 21:37:57
【问题描述】:

我正在尝试这样做,以便 cookie 保存用户名,然后在他们下次访问时将其放入 HTML 占位符中。最有效的方法是什么?

我搜索了其他线程并尝试使用“包含”并将 $name 放在输入占位符中,但由于 txtName 和 txtAge 未定义,它最终给了我错误。我不确定如何重组我的代码以使其正常工作。

PHP&HTML 文档#1:

    $doc = "<!DOCTYPE html>
        <html lang='en'>
        SOME HTML........
        <input type='text' name='txtName' id='txtName' placeholder='$name'>
        SOME HTML........
    </html>";

echo $doc;

PHP/文档#2:

<?php 

    $name = $_POST["txtName"];
    $age = $_POST["txtAge"];
    $k = $_POST['radRaceLength'];


    ///check if cookie exists
    if ( isset($_COOKIE["nameData"]) ){
        $name = $_COOKIE["nameData"];
    }
    else{
        $name = $name;
    }
    if ( isset($_COOKIE["ageData"]) ){
        $age = $_COOKIE["ageData"];
    }
    else{
        $age = $age;
    }
    setcookie("nameData", $name, time() + 3600, "/");
    setcookie("ageData", $age, time() + 3600, "/");

    $fiveK = 10 + ($age / 2); 
    $tenK = 18 + ($age / 3);
    $member = isset($_POST["chkMember"]) ? $fiveK = $fiveK - 5 AND $tenK = $tenK - 5: $member = NULL;

    if ( !$name AND $age <= 21 )
        echo "Please provide a name and valid age";
    else

        echo $name.', you are registered for the '.$k.' race. Your fee is: ';
        echo ( ($_POST["radRaceLength"] == "5K")? "$fiveK":"$tenK" );



?>

【问题讨论】:

  • 试试这个' 一些HTML........ 一些 HTML........ ';
  • 使用单引号 $doc = '.....' ;

标签: php html cookies setcookie


【解决方案1】:

DOC1:检查是否在 doc2 中设置了 cookie

<$php
$name = "Name";
if(isset($_COOKIE["nameData"])) {$name = $_COOKIE["nameData"];}
?>
<!DOCTYPE html>
<html lang='en'>
SOME HTML

<input type='text' name='txtName' id='txtName' placeholder='<?php echo $name ?>' />

SOME HTML
</html>;

文档2:

<?php 
$name = 'Name'; $age = 'Age'; $k = 0;

//if data in cookie, set.
if (isset($_COOKIE["nameData"])) $name = $_COOKIE["nameData"];
if (isset($_COOKIE["ageData"])) $age = $_COOKIE["ageData"];

//if data in post, set and rewrite cookie.
if(isset($_POST["txtName"])) $name = $_POST["txtName"];
if(isset($_POST["txtAge"])) $age = $_POST["txtAge"];
if(isset($_POST["radRaceLength"])) $k = $_POST["radRaceLength"];

setcookie("nameData", $name, time() + 3600, "/");
setcookie("ageData", $age, time() + 3600, "/");

$fiveK = 10 + ($age / 2); 
$tenK = 18 + ($age / 3);
$member = isset($_POST["chkMember"]) ? $fiveK = $fiveK - 5 AND $tenK = $tenK - 5: $member = NULL;

if (!$name AND $age <= 21 ) {
   echo "Please provide a name and valid age";
} else {
   echo "{$name}, you are registered for the {$k} race. Your fee is: ";
   echo ( ($_POST["radRaceLength"] == "5K")? "$fiveK":"$tenK" );
}
?>

【讨论】:

  • 有效!感谢您加倍努力并精美地重写它!很有帮助。
【解决方案2】:

试试这个可能有用:

<input type="text" class="form-control" name="firstname" placeholder="<?php echo isset($_COOKIE['firstname']) ? $_COOKIE['firstname'] : 'Your First Name'; ?>" />

【讨论】:

    【解决方案3】:

    您可以连接您的变量...在您的情况下,只需执行此操作... 从 placeholder='$name' 更改为 placeholder='.$name.'

     $doc = "<!DOCTYPE html>
            <html lang='en'>
            SOME HTML........
            <input type='text' name='txtName' id='txtName' placeholder='.$name.'>
            SOME HTML........
        </html>";
    
    echo $doc;
    

    【讨论】:

      【解决方案4】:

      一些问题:

      此部分无需添加:

      else{
          $name = $name;
      }
      

      完全没有。也适用于本节:

      else{
          $age = $age;
      }
      

      如果你想在If-Statement 中做不止一行的PHP 就像在

      else
      
          echo $name.', you are registered for the '.$k.' race. Your fee is: ';
          echo ( ($_POST["radRaceLength"] == "5K")? "$fiveK":"$tenK" );
      

      你应该像这样用大括号括起来:

      else{
      
          echo $name.', you are registered for the '.$k.' race. Your fee is: ';
          echo ( ($_POST["radRaceLength"] == "5K")? "$fiveK":"$tenK" );
      
      }
      

      回答您的问题:

      读取 cookie 并将其放入 HTML 输入的最有效方式?

      我不知道为什么所有人都试图将其添加到他们的问题中,因为高效一词在许多情况下没有意义。您只是在读取 cookie 并将其放入 HTML 输入中。

      所以,简单且更有可能正确的答案是,去做吧。

      进一步的建议

      不要像那样杀死标记。而是在真正需要时打开 PHP 标签,并在不需要时关闭它!

      <!DOCTYPE html>
      <html lang="en">
          <input type="text" name="txtName" placeholder="<?php echo $name;?>">
      </html>
      

      【讨论】:

      • 感谢您的有用建议!我从你的帖子中学到了一些东西。我通常要求“有效”的答案,因为我从他们那里学到了更多,而不是写得很清楚。例子;当他/她可以简单地使用 IF 语句时,我从某人的答案中学会了如何使用三元运算符。
      猜你喜欢
      • 2016-05-15
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2021-05-08
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多