I think I\'ve been staring at this for too long that now I\'m failing to identify the problem.
Can someone kindly point out where this is going wrong?
Error:
public static function textbox($name, $maxlength=''){
return "<input type='text' id='$name' name='$name' maxlength='$maxlength' value='". if (isset($_POST[$name])) { echo $name; } ."' >";
}
should be:
public static function textbox($name, $maxlength=''){
$ret = "<input type='text' id='$name' name='$name' maxlength='$maxlength' value='";
if (isset($_POST[$name])) { $ret .= $name; }
return $ret . "' >";
}
You can't use if statements like that.
To do what you want to achieve you'll need to do this:
public static function textbox($name, $maxlength=''){
return "<input type='text' id='$name' name='$name' maxlength='$maxlength' value='".(isset($_POST[$name]) ? $name : '')."' >";
}
You can't use the if function inside the retuned value string. I would build the string you want to return first, then return it. In my example the string to be returned is $out
. Even if the above worked this is easier to read and maintain.
$out= "<input type='text' id='$name' name='$name' maxlength='$maxlength' value='";
if (isset($_POST[$name])) {
$out.= $name;
}
$out .='" >";
return $out;
You cannot use if statements in such a way. Use the ternary operator for that purpose or have your variable pre-made before the concatenation.
public static function textbox($name, $maxlength=''){
return "<input type='text' id='$name' name='$name'
maxlength='$maxlength' value='". (isset($_POST[$name]) ? $name : '')."' >";
}
Alternative:
public static function textbox($name, $maxlength='')
{
if( !isset($_POST[$name] ) {
$myname = $name;
} else {
$myname = '';
}
return "<input type='text' id='$name' name='$name'
maxlength='$maxlength' value='". $myname ."' >";
}
try it this way:
public static function textbox($name, $maxlength=''){
return "<input type='text' id='".$name."' name='".$name."' maxlength='".$maxlength."' value='".( (isset($_POST[$name]) ? $name:'')."' >";
}