Como chamar uma função JavaScript do PHP?
<?php
jsfunction();
// or
echo(jsfunction());
// or
// Anything else?
O código a seguir é de xyz.html (em um clique de botão) que chama a wait()
em um xyz.js externo . Isso wait()
chama wait.php.
function wait()
{
xmlhttp=GetXmlHttpObject();
var url="wait.php"; \
xmlhttp.onreadystatechange=statechanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechanged()
{
if(xmlhttp.readyState==4) {
document.getElementById("txt").innerHTML=xmlhttp.responseText;
}
}
e wait.php
<?php echo "<script> loadxml(); </script>";
onde loadxml()
chama o código de outro arquivo PHP da mesma maneira.
A loadxml()
está funcionando bem de outra forma, mas não está sendo chamado o jeito que eu quero.
php
javascript
Zeeshan Rang
fonte
fonte
Respostas:
No que diz respeito ao PHP (ou realmente, um servidor web em geral), uma página HTML não é nada mais complicada do que uma grande string.
Todo o trabalho sofisticado que você pode fazer com linguagens como PHP - lendo bancos de dados e serviços da Web e tudo mais - o objetivo final final é exatamente o mesmo princípio básico: gerar uma sequência de HTML *.
Sua grande string HTML não se torna nada mais especial do que isso até ser carregada por um navegador da web. Uma vez que um navegador carrega a página, em seguida, todos os outros mágica acontece - o layout, material de modelo de caixa, geração DOM, e muitas outras coisas, incluindo a execução de JavaScript.
Portanto, você não "chama JavaScript do PHP", "inclui uma chamada de função JavaScript na sua saída".
Existem muitas maneiras de fazer isso, mas aqui estão algumas.
Usando apenas PHP:
Escapando do modo php para o modo de saída direta:
Você não precisa retornar um nome de função ou algo assim. Antes de tudo, pare de escrever solicitações AJAX manualmente. Você só está dificultando a si mesmo. Obtenha o jQuery ou um dos outros excelentes frameworks existentes.
Em segundo lugar, entenda que você já estará executando o código javascript assim que a resposta for recebida da chamada AJAX.
Aqui está um exemplo do que eu acho que você está fazendo com o AJAX do jQuery
Agora, se você está decidido a enviar um nome de função do PHP de volta para a chamada AJAX, você também pode fazer isso.
* Ou JSON ou XML etc.
fonte
Eu sempre uso
echo "<script> function(); </script>";
ou algo parecido. você não está tecnicamente chamando a função em PHP, mas isso é o mais próximo que você pode chegar.fonte
echo
para uma variável inPHP
?Por enquanto (fevereiro de 2012), há um novo recurso para isso. Confira aqui
Exemplo de código (retirado da web):
fonte
Você não pode. Você pode chamar uma função JS do HTML gerado pelo PHP, mas isso é algo totalmente diferente.
fonte
Isso não é possível. PHP é uma linguagem do lado do servidor e do lado do JavaScript e eles realmente não sabem muito um do outro. Você precisaria de um interpretador de JavaScript do servidor (como Aptanas Jaxer). Talvez o que você realmente queira fazer seja usar um Ajax como Architecture (a função JavaScript chama o script PHP de forma assíncrona e faz algo com o resultado).
fonte
Se você quiser repetir para execução posterior, tudo bem
Se você deseja executar o JS e usar os resultados no PHP, use V8JS
Você pode consultar aqui para referência adicional: O que são extensões no php v8js?
Se você deseja executar HTML & JS e usar a saída em PHP http://htmlunit.sourceforge.net/ é a sua solução
fonte
O PHP é executado no servidor. JavaScript é executado no cliente. Portanto, o php não pode chamar uma função JavaScript.
fonte
você pode tentar este também: -
fonte
tente assim
fonte
Talvez você não consiga fazer isso diretamente, mas a biblioteca Xajax está bem próxima do que você deseja. Vou demonstrar com um exemplo. Aqui está um botão em uma página da web:
Nosso palpite intuitivo seria que
xajax_addCity()
é uma função Javascript, certo? Bem, certo e errado. O legal do Xajax é que não temos nenhuma função JS chamadaxajax_addCity()
, mas o que temos é uma função PHP chamadaaddCity()
que pode fazer o que o PHP faz!Pense sobre isso por um minuto. Estamos praticamente invocando uma função PHP a partir do código Javascript! Esse exemplo simplificado foi apenas para aguçar o apetite, uma explicação melhor está no site do Xajax, divirta-se!
fonte