Pergunta

Eu tenho essa função pouco

function makewindows(){
child1 = window.open ("about:blank");
child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
child1.document.close(); 
}

O que quer que eu tente, simplesmente emite o código php como a fonte html, e não o resultado do código php. Isto foi muito bem anteriormente trabalhando, e eu não sei o que eu mudei para resultar neste comportamento.

Eu ter colado todo o código agora. Um erro é gerado por um link que chama updateByQuery, impedindo makeWindows de ser correctly..I analisados ??pensar. Não tenho a certeza que está errado com updateByQuery no entanto:

function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}
Foi útil?

Solução

Eu suponho que você ainda tê-lo em um arquivo que é analisado pelo PHP, como os outros já disseram. Então, é provavelmente algo acima deste trecho de código que confunde o php-parser por isso não reconhecem o php-tag.

Para testar isso, tente a saída de outra coisa antes dessa função, talvez apenas um comentário ou algo assim.

Além disso, use "var" antes client1, ou então client1 será no escopo global.

Update 1 Desde que você tentou inserir um pedaço de php-code e quebrou, então o problema é que o servidor não analisar o arquivo como deveria.

Para testar se o servidor realmente analisa seus arquivos .js (ajuste não é o padrão creio eu), criar um novo arquivo: test.js

<?php echo "This is a test"; ?>

Abra o test.js arquivo no seu navegador e olhar para a fonte da página. Se ele tem as tags php seu servidor não .js analisar arquivos.

update 2 Se o php funciona em arquivos .js, tentar reescrever a função como esta (desculpe, eu não testei isso, porque eu não tenho acesso a um php-servidor agora)

<?php    
echo "function makewindows(){var child1 = window.open (\"about:blank\"); " .
"child1.document.write(\"" . htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES) . "\");" . "child1.document.close(); }";    
?>

Outras dicas

Você recentemente mudou-se esse arquivo a partir de um arquivo PHP analisado (ou seja .phtml / .php) e em um arquivo js? Note que qualquer PHP você espera para ser executado devem ser analisados ??pelo analisador PHP antes da entrega ao cliente. Se era originalmente em um arquivo .php, em seguida, teria sido analisados ??/ executado, e funcionou bem.

No entanto, .js não são, por padrão, analisado pelo PHP. Talvez fossem, em um ponto, mas o administrador do servidor foi recentemente atualizado alguma coisa, e perdeu esse comportamento? Você pode ser capaz de usar um arquivo de configuração local (no Apache, .htaccess) para reativá-lo.

Este código deve estar em um arquivo que é analisado pelo PHP antes de ser enviado para o navegador. Certifique-se que tem uma extensão ".php" (ou que o Apache / (ou outro) está configurado para colocar qualquer extensão ele está usando através do PHP). Além disso, certifique-se PHP está instalado corretamente e funcionando.

Certifique-se de que você está executando a página do servidor como tal: http://localhost/yourpage.php e não directamente a partir do próprio arquivo como tal: file://yourpage.php

Eu não tenho certeza se isso vai ajudar, mas as melhores práticas ditam que sempre que você escreve para uma nova janela usando JavaScript, você deve abrir e fechar o documento. você pode tentar isso?

function makewindows(){
  var child1 = window.open ("about:blank");
  child1.document.open();
  child1.document.write("<?php echo htmlspecialchars(json_encode($row2['ARTICLE_DESC']), ENT_QUOTES); ?>");
  child1.document.close(); 
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top