Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ElyCristina

Como executar uma função script junto ao php

Recommended Posts

:mellow: Olha eu mais uma vez aqui ....

 

bom...

 

meu probleminha é o seguinte...

 

gostaria de chamar a execução de um script dentro de um php

 

poderia ser até pelo alert... desde que ela execute depois de executar todo o php

 

a função é essa

 

CODE

<script language="JavaScript" type="text/javascript">

function insertImage() {

var image = '<img src="' + document.getElementById('imageurl').value + '" alt="' + document.getElementById('alt').value + '" alignment="' + document.getElementById('alignment').value + '" border="' + document.getElementById('borderThickness').value + '" hspace="' + document.getElementById('horizontal').value + '" vspace="' + document.getElementById('vertical').value + '">';

window.opener.insertHTML(image, qsParm['wysiwyg']);

window.close();

}

</script>

o código a ser executado é este

 

CODE

<?

if ($id == "gravar") {

$arquivoTmp = $_FILES['arquivo']['tmp_name'];

$arquivo = $pathToSave.$_FILES['arquivo']['name'];

$time = time();

geraImgProp($arquivoTmp, $arquivoTmp, 450, 320, 72);

if( copy( "$arquivoTmp", "imagens/$time$arquivo" ) ) {

$imageurl= "http://www.hospitalprovisao.com.br/controle/Textarea/popups/imagens/$time$arquivo";

echo "<script>alert('Imagem inserida com sucesso');</script>";

//o problema tá aqui... assim que o valor da variavel existir $imageurl tem que executar a função insertImage();

 

}

}

?>

Será que alguém pode ajudar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teoricamente está certo. O que não é possível de ser feito (creio eu) é, durante a execução do PHP, chamar um JS e depois continuar o PHP. Porque o JS não "existe" até que o PHP termine de ser executado.

Eu costumo usar dessa forma (sem usar o echo para escrever tags html):

 

<?php
  if ($id == "gravar") {
	$arquivoTmp = $_FILES['arquivo']['tmp_name'];
	$arquivo = $pathToSave.$_FILES['arquivo']['name'];
	$time = time();
	geraImgProp($arquivoTmp, $arquivoTmp, 450, 320, 72);
	if(copy("$arquivoTmp", "imagens/$time$arquivo")){
	  $imageurl = "http://www.hospitalprovisao.com.br/controle/Textarea/popups/imagens/$time$arquivo"; ?>
	  <script language="javascript1.1" type="text/javascript">
		 window.alert('Imagem inserida com sucesso');
		 insertImage();
	  </script>";
<?php
	}
  }
?>

O que pode estar acontecendo, é que a sua função pode não estar sendo encontrada.

Quando faço algo assim (JS+PHP), é chamar essa página PHP em um iframe e a parte em JS ficaria:

 

parent.insertImage();

Nesse caso, seu script insertImage() (que deve estar na página que chamou o iframe) já existe e o PHP, depois de executado, consegue encontrá-lo. Veja se pode ser isso.

 

Qualquer coisa, estamos aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente como você disse mario, não funcionou

 

Meu probleminha.... acho que já é problemão....

 

não consegui fazer de jeito nenhum.....

 

Eu preciso executar o escript depois que o valor da variavel existir, talvez uma outra forma de fazer.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta chamar esse script PHP a partir de um iFrame ou por Ajax. Faço aqui dessa forma e funciona.

Olha só um exemplo, bem simples, de como seriam dos dois modos:

 

principal.php

CODE

<script language="javascript1.1" type="text/javascript">

try{

xmlhttp = new XMLHttpRequest();

}catch(ee){

try{

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}catch(E){

xmlhttp = false;

}

}

}

function fncMostra(info){

window.alert(info);

return;

}

function fncExec(){

iFrame.location.href = "script.php?valorG="+document.getElementById('valorG').value;

return;

}

function fncExecAjax(){

xmlhttp.open("GET", "scriptx.php?valorG="+document.getElementById('valorG').value, true);

xmlhttp.onreadystatechange = function(){

if(xmlhttp.readyState == 4){

fncMostra("Resultado com Ajax: "+xmlhttp.responseText);

}

}

xmlhttp.send(null);

}

</script>

<input type="text" id="valorG" />

<input type="button" onclick="fncExec()" value="iFrame" />

<input type="button" onclick="fncExecAjax()" value="Ajax" />

<iframe name="iFrame" frameborder="0" height="0" width="0" scrolling="no"></iframe>

script.php

<?php
	$valorA = 255;
	$valorB = 100;
	$valorC = $valorA+$valorB+$_GET['valorG'];
?>
<script language="javascript1.1" type="text/javascript">
	parent.fncMostra('Resultado com iFrame: <?php echo $valorC ?>');
</script>

scriptx.php

<?php
	$valorA = 255;
	$valorB = 100;
	$valorC = $valorA+$valorB+$_GET['valorG'];
	echo $valorC;
?>

Salve os 3 arquivos na mesma pasta e execute o "principal.php".

Aparecerá um campo de texto e dois botões.

Coloque qualquer número no campo de texto (se quiser) e clique em cada botão.

Um deles chama um arquivo (script.php) por iframe, faz umas somas, e devolve o valor por JS.

O outro botão chama o arquivo scriptx.php (por Ajax), faz a soma e devolve o valor também por JS.

Talvez isso dê uma idéia do que você pode fazer pra resolver seu problema.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.