0

我需要从函数返回一个输入框,但我可以正确地加上引号。任何人请帮我解决错误。

<?php
 return "
<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".if(isset($_POST['contactName'])) echo $_POST['contactName']."' class='requiredField' />";
4

4 回答 4

4

用这个

<?php
 return '
<input  style="background-color:#CCC;" type="text" name="contactName" id="contactName" value="'.(isset($_POST['contactName'])?$_POST['contactName']:'').'" class="requiredField" />';

对于内联,如果这会输出一些东西,请使用以下语法:

( condition ? 'the thing that will return when condition true' : 'the false returned string' )
于 2013-05-06T09:14:46.007 回答
1
<?php
if(isset($_POST['contactName'])) {$contactname=$_POST['contactName'];}
 return "<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".$contactname."' class='requiredField' />";
?>
于 2013-05-06T09:21:29.440 回答
0

您可以将其中断并返回值,而不是写在一行中。

if(isset($_POST['contactName'])) {
    $value = $_POST['contactName'];
} else {
    $value = "";
}

$input  = '<input style="background-color:#CCC;" type="text" name="contactName" id="contactName" ';
$input .= 'value="'. $value .'" ';
$input .= 'class="requiredField" ';
$input .= '/>';

return $input;

我还可以看到您正在分配一个值而不对其进行处理。这是不正确的。所以,它应该是这样的:

if(isset($_POST['contactName'])) {
        $value = stripslashes($_POST['contactName']);
    } else {
        $value = "";
    }

如果您使用 PDO,也可以使用任何其他转义方法。

于 2013-05-06T09:26:34.673 回答
-1

另一个简单的解决方案

    <?php 
     if(isset($_POST['contactName']))
        {
         return "<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".$_POST['contactName']."' class='requiredField' />";
        }
     ?>
于 2013-05-06T09:27:25.633 回答