Use a php function in echo statement
I've made this code, which disables a textbox if $TaxiDest has a value, however for my form to work i need this code to work [<?php phpfmg_hsc("field_17", ""); ?>] within the value tag of the textbox.
Here is the code im working with:
Code:
<?php if($TaxiDest == "")
{echo "<input type='text' name='field_17' id='field_17' value='phpfmg_hsc('field_17', '');' class='text_box'>";}
else
{echo "<input type='text' name='field_17' id='field_17' disabled='disabled' value='$TaxiDest' class='text_box'>";}
?>
by the way when i run the page [phpfmg_hsc(] is displayed in the textbox
ive made a few changes but still not got it working heres a live link
Thanks in advance,
chris1990
Re: Use a php function in echo statement
There are a couple of ways; my preference is:
PHP Code:
<?php if($TaxiDest == ""): ?>
<input type='text' name='field_17' id='field_17' value='<?php echo phpfmg_hsc('field_17', '');?>' class='text_box'>
<?php else: ?>
<input type='text' name='field_17' id='field_17' disabled='disabled' value='<?php echo $TaxiDest;?>' class='text_box'>
<?php endif; ?>
This makes for the cleanest division of PHP from HTML. It works by exiting the PHP context as needed to output markup.
But this would also work:
PHP Code:
echo "<input type='text' name='field_17' id='field_17' value='".phpfmg_hsc('field_17', '')."' class='text_box'>";
It works by string concatenation.
...as would this, for example:
PHP Code:
echo "<input type='text' name='field_17' id='field_17' value='", phpfmg_hsc('field_17', ''), "' class='text_box'>";
It works by echoing multiple strings.
Re: Use a php function in echo statement
Thanks for your help, but i still cant get it working. The problem is that it doesn't fill field_17 in the email i receive, when i use the $TaxiDest (it shows on screen but not in email). It does work though when i type it manually.
Code:
<?php if($TaxiDest == ""): ?>
<input type='text' name='field_17' id='field_17' value='<?php phpfmg_hsc("field_17", "");?>' class='text_box'>
<?php else: ?>
<input type='text' name='field_17' id='field_17' disabled='disabled' value='<?php phpfmg_hsc("field_17", "$TaxiDest");?>' class='text_box'>
<?php endif; ?>
I have the same problem with this line:
Code:
<input type="text" name="field_28" id="field_28" disabled="disabled" value="<?php phpfmg_hsc("field_28", "$TaxiPrice"); ?>" class='text_box'>
Yet no problems here:
Code:
<input type="text" name="field_15" id="field_15" value="<?php phpfmg_hsc("field_15", ""); ?>" class='text_box'>
Thanks,
Chris1990
Re: Use a php function in echo statement
Assuming that phpfmg_hsc() returns a string, you'll need to preface it with echo in all of those cases:
PHP Code:
<?php echo phpfmg_hsc("field_17", "");?>
If that's not necessarily the case, then it might help to see the code of phpfmg_hsc().
Re: Use a php function in echo statement
Sorry for late reply, been busy this week.
I tried prefacing phpfmg_hsc() with echo and it still doesn't include it in the email.
Code:
function phpfmg_hsc($field, $default){
echo isset($_POST[ $field ])
? HtmlSpecialChars( $_POST[ $field ] )
: $default;
}
# Generated By Free PHP Formmail Generator : http://phpfmg.sourceforge.net
Re: Use a php function in echo statement
Since the function echos its result rather than returning one, you won't need to use echo before it.
You're saying that a field isn't appearing properly in an email - are you showing the code that is used for that email?
Re: Use a php function in echo statement
I've found the problem is due to the field being disabled, by removing the disabled property i receive its value in the email.
I think im going to have to hide the field rather than disable and use a div to display the value.
Thanks Chris1990.
Re: Use a php function in echo statement
Thanks for your help SambaNeko, ive got it working now.
Code:
<?php if($TaxiDest == ""): ?>
<input type='text' name='field_17' id='field_17' value='<?php phpfmg_hsc("field_17", "");?>' class='text_box'>
<?php else: ?>
<input type='text' name='field_17' id='field_17' style="visibility:hidden; display:none;" value='<?php phpfmg_hsc("field_17", $TaxiDest);?>' class='text_box'>
<input type='text' name='field_17a' id='field_17a' disabled="disabled" value='<?php phpfmg_hsc("field_17", $TaxiDest);?>' class='text_box'>
<?php endif; ?>
Chris1990.