Ir para conteúdo
Fórum Script Brasil
  • 0

Como escrever "alert('olá mundo')" no PHP?


Frank K Hosaka

Pergunta

Eu fiz besteira e perdi o meu arquivo pessoa.php. Para o meu sistema não ficar sem pé e sem cabeça eu puxei o meu antigo arquivo no OneDrive, e com isso eu perdi dois dias de trabalho. Eu estava implantando o modal no arquivo.

Tive que fazer tudo de novo, e de novo eu tive os mesmos erros, mas eu não lembrava de como consegui resolver o problema.

A única coisa que veio na minha mente foi responder a pergunta como escrever "alert('olá mundo')" no PHP.

Eu tentei de várias maneiras, até que cheguei nessa solução:

<?php
$modal = ... // cadastro da pessoa selecionada
$java = 'alert("ola mundo")';
$pessoa = "<li onclick='$java'>$pessoa</li>";
?>

Essa fórmula eu consegui com a ajuda de várias tentativas e com a inspeção do navegador. Geralmente, o código PHP sempre usa aspas duplas para definir uma variável. O problema é que o HTML também usa bastante aspas duplas. Então, eu pedi para o PHP usar aspas simples, e com isso eu perco várias facilidades como escrever a variável dentro da cadeia de caracteres.

Para resolver o problema do modal, eu acompanhei a minha solução genérica para chegar nessa solução particular:

<?php
$modal =... // cadastro da pessoa selecionada
$java = 'modal(" '.$modal.' ")';
$pessoa = "<li onclick='$java'>$pessoa</li>";
?>

a minha função modal  e o CSS correpondente é assim
<script>
function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";}
function desligamodal2() {divmodal2.style.display = "none";}
</script>
<style> 
form {margin: 0;} 
.modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170;
         width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>

para eles funcionarem, eu preciso do seguinte <div>

<?php 
echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>";
?>

Você tem que tomar o cuidado do <div> não ficar perdido dentro de um <table>, aí nada vai funcionar.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1

Olá!
Tudo bem que o sr. tenha conseguido resolver assim.
Mas perceba e pode comparar os grandes sistemas/aplicativos/softwares
Os domínios são separados
Tente deixar o que é frontend no frontend
E deixe o backend com as responsabilidades de backend.
Perceba que grandes aplicativos/sistemas, mesmo depois de buildados, o js fica em arquivos .js
os html em .html
os css em .css
e no backend ficam a lógica/regras de negócio
A única coisa que transita do front -> back ou do back -> pro front é texto simples. Na maioria dos casos apenas json notation

Link para o comentário
Compartilhar em outros sites

  • 0

A listagem completa do meu código é esse daqui, caso você queira testar. Eu consegui recuperar o modal no meu arquivo pessoa.php (graças a Deus), mas não estou conseguindo instalar em produto.php, assim estou começando do zero (de novo) até conseguir o modal na listagem de produtos.

 

_1.php
*** nesse pequeno aplicativo eu tento usar o modal no PHP ***

<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";}
function desligamodal2() {divmodal2.style.display = "none";}
</script>
<style> 
form {margin: 0;} 
.modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170;
         width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>
<?php 
echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>";
$modal = "olá mundo!";
$java = 'modal(" '.$modal.' ")';
echo "<li onclick='$java'>Teste</li>";
?>

 

Nesse código, eu tento mandar uma tabela para o modal, baseado no exemplo anterior.

 

<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";}
function desligamodal2() {divmodal2.style.display = "none";}
</script>
<style> 
form {margin: 0;} 
.modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170;
         width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>
<?php 
echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>";
$modal = "<table><tr><th><th></tr>"
."<tr><td align=right>Código<td><b>666</tr>"
."<tr><td align=right>Produto<td><b>Jabuticaba</tr>";
$java = 'modal(" '.$modal.' ")';
echo "<li onclick='$java'>Teste</li>";
?>

 

Link para o comentário
Compartilhar em outros sites

  • 0

Nessa listagem eu coloco o primeiro registro da tabela tbprod no modal.

 

<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";}
function desligamodal2() {divmodal2.style.display = "none";}
</script>
<style> 
form {margin: 0;} 
.modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170;
         width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>
<?php 
$mysqli = new mysqli("localhost","root","","diario");
$query = $mysqli->query("select * from tbprod");
$linha = $query->fetch_assoc();
echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>";
$codprod=$linha['codprod'];
$modal = "<table><tr><th><th></tr>"
."<tr><td align=right>Código<td><b>$codprod</tr>"
."<tr><td align=right>Produto<td><b>".$linha['prod']."</tr>"
."<tr><td align=right>Unidade<td><b>".$linha['un']."</tr>"
."<tr><td align=right>Custo<td><b>".str_replace(".",",",$linha['custo'])."</tr>";
$java = 'modal(" '.$modal.' ")';
echo "<li onclick='$java'>Teste</li>";
mysqli_close($mysqli);
?>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Finalmente, eu inclui um hiperlink dentro do modal, eu não sei explicar porque ele funciona.

Se você estudar a última linha da montagem do $modal, notará que eu fiz uma bela gambiarra, ao invés de eu escrever      

."<tr><td height=40><td><li onclick='testar($codprod)'><font color=red>testar</li></tr></table>";

eu simplesmente omiti as aspas simples assim:

."<tr><td height=40><td><li onclick=testar($codprod)><font color=red>testar</li></tr></table>";

Não é fácil trabalhar com o modal no PHP!

<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";}
function desligamodal2() {divmodal2.style.display = "none";}
function testar(id) {alert("Deu certo "+id);}
</script>
<style> 
form {margin: 0;} 
.modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170;
         width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>
<?php 
$mysqli = new mysqli("localhost","root","","diario");
$query = $mysqli->query("select * from tbprod");
$linha = $query->fetch_assoc();
echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>";
$codprod=$linha['codprod'];
$modal = "<table><tr><th><th></tr>"
."<tr><td align=right>Código<td><b>$codprod</tr>"
."<tr><td align=right>Produto<td><b>".$linha['prod']."</tr>"
."<tr><td align=right>Unidade<td><b>".$linha['un']."</tr>"
."<tr><td align=right>Custo<td><b>".str_replace(".",",",$linha['custo'])."</tr>"
."<tr><td height=40><td><li onclick=testar($codprod)><font color=red>testar</li></tr></table>";
$java = 'modal(" '.$modal.' ")';
echo "<li onclick='$java'>Teste</li>";
mysqli_close($mysqli);
?>

Agora que tudo deu certo no meu rascunho, espero que tudo dê certo lá no meu produto.php.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...