Ці магу я зрабіць функцыю PHP для стварэння поля ўводу тэксту?

Так што я збіраюся зрабіць пару формаў з мноствам ўваходных тэкставых боксаў, таму я вырашыў зрабіць функцыю, каб дапамагчы аўтаматызаваць гэта было б добрай ідэяй.

Ніжэй функцыя я прыдумаў: аднак, вынікі, якія я атрымаў, здаецца, сапраўды дзіўна, быўшы спалучэннем «рэха» і беспарадак адзінарных двукоссяў. Выглядае Ці правільна ўсё там? Я пачатковец у PHP, так што я вельмі шкадую, калі гэта відавочная памылка, якую я не хапае.

    function makeTextInputField($name)
    {
echo '<input type = "text" name = "<?php $name?>">';
    }
1

8 адказы

Вы не павінны выкарыстоўваць больш тэгаў ўнутры PHP

function makeTextInputField($name)
        {
    echo '<input type = "text" name = "'.$name.'" />';
        }
3
дададзена
Ўваходных тэг павінен быць зачынены з гэтым сінтаксісам: <�ўводу /> . Там няма неабходнасці </уваход> ​​.
дададзена аўтар user1823761, крыніца

<�Б> Працоўная Дэманстрацыйны

Таму што вы можаце ўставіць парывы ​​радкоў у радкоў у PHP, вы можаце зрабіць сваю функцыю больш чытэльным з дапамогай зменных ўнутры яго:

<?php

    function makeTextInputField($name) {
        $text = ucfirst($name);
        echo "
            
            <input type='text' name='{$name}' />
        ";
    }

?>

І whenver вы хочаце выкарыстаць:

Welcome

<?php makeTextInputField('email'); ?>

<�Моцны> OUTPUT

Welcome


<input type='text' name='email' />
1
дададзена

выкарыстоўваць вяртанне Intead рэха, і гэта будзе лягчэй маніпуляваць вынікам. Акрамя таго, вы можаце падзяліць пакаленне элементаў у розныя функцыі для большай гнуткасці:

function createLabel($for,$labelText){
    return '';
}

function createTextInput($name,$value,$id){
    return '<input type = "text" name = "'.$name.'" id="'.$id.'">'.$value.'';
}

function myTextInput($name,$value,$labelText){
    $id = 'my_input_'.$name;
    return createLabel($id,$labelText).createTextInput($name,$value,$id);
}

echo myTextInput('email','','Type you email');
0
дададзена
function makeTextInputField($name)
{
echo '<input type = "text" name = "'.$name.'">';
 }

Гэта павінна працаваць.

You are already in php. So no need for the <?php tags. Concatenate strings together with a .

0
дададзена

Паспрабуйце з Sprintf .

function textInput($name)
{
  $html = '<input type="text" name="%1$s"/>';
  echo sprintf($html, $name, ucfirst($name));
}
0
дададзена
<?php

class DeInput
{
    protected $_format = '<div>
                 
                 <input  class="formfield" type="text"   name="%s"  value="%s">
                 </div>';
        public function render($content,$getFullyQualifiedName,$getValue,$getLabel)
    {

        $name = htmlentities($getFullyQualifiedName);
        $label = htmlentities($getLabel); 
        $value = htmlentities($getValue);
        $markup = sprintf($this->_format, $name, $label,  $name, $value);
        return $markup;
    }


}
0
дададзена

Ўвод PHP кода ў двукоссі некалькі дрэнная практыка, так што я з дапамогай (.) Паказваюць, каб аб'яднаць радкі могуць быць выкарыстаныя.

Вось мой прыклад:

function makeTextInputField($name) {
    echo '';
    echo '<input type="text" name="'.$name .' />';
}
0
дададзена

Ваша праблема ў тым, што ўнутры PHP кода вы адкрываеце новыя PHP-тэгі, якія на самай справе не патрабуецца. Паспрабуйце гэтую функцыю і паглядзець, калі ён працуе для вас:

function makeTextInputField($name)
{
    echo sprintf(' <input type="text" name="%s">', $name, ucfirst($name), $name);
}
0
дададзена
Я мяркую, што людзі не любяць Sprintf . Так сумна. :(
дададзена аўтар elclanrs, крыніца