I wan to call a PHP function in JavaScript code that echoes out a value:
<?php
function ex()
{
$num=10;
echo($num);
}
echo '<script type="text/javascript">
function sam_click(clicked)
{
var x="<?php ex(); ?>";
alert(x);
return false;
}
</script>'?>
However, it doesn't work. Can you help?
Try this:
<?php
function ex()
{
$num=10;
echo($num);
}
echo '<script type="text/javascript">
function sam_click(clicked)
{
var x="' . ex() . '>";
alert(x);
return false;
}
</script>'?>
Just try with:
...
var x="' . ex() . '";
...
Try echoing only what you need
<?php
function ex()
{
$num=10;
echo($num);
}
?>
<script type="text/javascript">
function sam_click(clicked)
{
var x="<?php ex(); ?>";
alert(x);
return false;
}
</script>
function ex()
{
$num=10;
echo $num;
return $num; // if you want to get JS alert
}
echo '<script type="text/javascript">
function sam_click(clicked)
{
var x='.ex().';
alert(x);
return false;
}
sam_click(); // if you want to get JS alert
</script>';
instead of echoing the $num, return it as a result and then append it in the script part.
<?php
function ex()
{
$num=10;
return ($num);
}
echo '<script type="text/javascript">
function sam_click(clicked)
{
var x="' . ex() . '";
alert(x);
return false;
}
</script>'?>
another solution with heredoc and nowdoc:
<?php
// helper to call functions as nowdoc
// example: {$fn( function() )}
function fn($functionCall)
{
return $functionCall;
}
$fn = 'fn';
function ex()
{
return 20;
}
$js = <<<EOT
<script type="text/javascript">
function sam_click(clicked)
{
var x="{$fn(ex())}";
alert(x);
return false;
}
</script>
EOT;
echo $js;
Find more detail on PHPDoc: