Quero chamar uma função PHP no código JavaScript que ecoa um valor:
<?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>"?>
No entanto, não funciona. Você pode ajudar?
Respostas:
1 para resposta № 1Tente isto:
<?php
function ex()
{
$num=10;
echo($num);
}
echo "<script type="text/javascript">
function sam_click(clicked)
{
var x="" . ex() . ">";
alert(x);
return false;
}
</script>"?>
1 para resposta № 2
Apenas tente com:
...
var x="" . ex() . "";
...
1 para resposta № 3
Tente repetir apenas o que você precisa
<?php
function ex()
{
$num=10;
echo($num);
}
?>
<script type="text/javascript">
function sam_click(clicked)
{
var x="<?php ex(); ?>";
alert(x);
return false;
}
</script>
0 para a resposta № 4
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>";
0 para a resposta № 5
em vez de ecoar o $ num, retorne-o como resultado e, a seguir, acrescente-o à parte do script.
<?php
function ex()
{
$num=10;
return ($num);
}
echo "<script type="text/javascript">
function sam_click(clicked)
{
var x="" . ex() . "";
alert(x);
return false;
}
</script>"?>
0 para a resposta № 6
outra solução com heredoc e 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;
Encontre mais detalhes no PHPDoc: