如何用变量数据更新PHP表单输入框的value属性?
问题原因
你这段代码里输出表单的echo用了单引号包裹字符串,PHP中在单引号字符串里,变量和{$变量}语法都不会被解析,会直接原样输出,所以才会显示{$title}。而你前面的echo用双引号就能正常解析$title,就是这个原因。
解决办法
以下三种方法任选其一即可:
方法1:拼接变量到单引号字符串中
把需要插入变量的地方拆出来,用字符串连接符.拼接:
echo '<div class="container"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h4> Add Contacts <a href="index.php" class=" btn btn-danger float-end" > Back</a> </h4> </div> <div class="card-body"> <form action="code.php" method="POST"> <div class="form-group mb-3"> <label for="">First Name</label> <input name="first_name" value="' . $title . '" class="form-control"> </div> <div class="form-group mb-3"> <label for="">Phone Number</label> <input name="phone" value="' . $result . '" class="form-control"> </div> <div class="form-group mb-3"> <label for="">Note</label> <input type="text" name="note" class="form-control"> <div class="form-group mb-3"> <button type="submit" name="save_contact" class="btn btn-primary">Save contact</button> </div> </form> </div> </div> </div> </div> </div>';
方法2:改用双引号包裹字符串(注意转义内部双引号)
把外层的单引号换成双引号,同时把内部的双引号用\转义,这样PHP会解析里面的变量:
echo "<div class=\"container\"> <div class=\"row\"> <div class=\"col-md-12\"> <div class=\"card\"> <div class=\"card-header\"> <h4> Add Contacts <a href=\"index.php\" class=\" btn btn-danger float-end\" > Back</a> </h4> </div> <div class=\"card-body\"> <form action=\"code.php\" method=\"POST\"> <div class=\"form-group mb-3\"> <label for=\"\">First Name</label> <input name=\"first_name\" value=\"{$title}\" class=\"form-control\"> </div> <div class=\"form-group mb-3\"> <label for=\"\">Phone Number</label> <input name=\"phone\" value=\"{$result}\" class=\"form-control\"> </div> <div class=\"form-group mb-3\"> <label for=\"\">Note</label> <input type=\"text\" name=\"note\" class=\"form-control\"> <div class=\"form-group mb-3\"> <button type=\"submit\" name=\"save_contact\" class=\"btn btn-primary\">Save contact</button> </div> </form> </div> </div> </div> </div> </div>";
方法3:使用Heredoc语法(推荐,无需转义引号)
Heredoc是PHP里更友好的多行字符串写法,支持变量解析,不用处理引号转义:
echo <<<HTML <div class="container"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h4> Add Contacts <a href="index.php" class=" btn btn-danger float-end" > Back</a> </h4> </div> <div class="card-body"> <form action="code.php" method="POST"> <div class="form-group mb-3"> <label for="">First Name</label> <input name="first_name" value="{$title}" class="form-control"> </div> <div class="form-group mb-3"> <label for="">Phone Number</label> <input name="phone" value="{$result}" class="form-control"> </div> <div class="form-group mb-3"> <label for="">Note</label> <input type="text" name="note" class="form-control"> <div class="form-group mb-3"> <button type="submit" name="save_contact" class="btn btn-primary">Save contact</button> </div> </form> </div> </div> </div> </div> </div> HTML;
注意:Heredoc的结束标记HTML;必须单独占一行,前后不能有空格。
内容的提问来源于stack exchange,提问作者Wadim Seminsky
相关产品推荐
相关产品推荐

