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

O plano de contas no modal do PHP


Frank K Hosaka

Pergunta

Nos códigos anteriores, eu usei bastante o JavaScript para pegar uma variável do PHP e colocar no elemento <div> do HTML. Mas eu apanhei muito, e agora pedi para o PHP colocar a variável na <div> sem a intervenção do JavaScript. Pensei que isso iria facilitar a minha vida, mas eu me enganei. O problema é montar a variável e não como colocar no HTML.

Aqui apresento dois códigos, um bem básico que monta o plano de contas na unha e a segunda usando o motor mysqli do PHP. Mas nenhum dos dois funciona se o plano de contas tiver aspas simples ou dupla dentro da descrição. Eu ainda não sei como resolver esse abacaxi, mesmo assim eu adorei o visual tanto no notebook bem como no celular, ficou muito mais prático.

_2.php plano de contas, versão básica

<meta name="viewport" content="width=device-width, initial-scale=1">

<style> 
li {list-style-type: none;}
form {margin: 0;} 
.modal2 { display: none; position: absolute; z-index: 1; padding-top: 100px; left: 0; top:0;
		 width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>

<script>
var lçto = "";
var descrição = "";
function lançar(id,jd) {
	lçto=id;
	descrição=jd;
	divmodal2.style.display="block";};
function registro(id,jd) {
	divmodal2.style.display="none";
	eleconta = document.getElementById(lçto);
	eledescrição = document.getElementById(descrição);
	eleconta.value=id;
	eledescrição.innerHTML=jd;}
</script>

<?php
// tela de registro contábil
echo "<table><tr><th><th><th></tr>"
. "<tr><td>Débito<td><input id=idebito onclick=lançar(id,'lidebito') size=2>"
. "<td><li id=lidebito></li></tr>"
. "<tr><td>Crédito<td><input id=icredito onclick=lançar(id,'licredito') size=2>"
. "<td><li id=licredito></li></tr>"
. "<tr><td>Histórico<td><td>Exemplo de lançamento</tr>"
. "<tr><td>Valor<td>100,00</tr></table>";

// tela do plano de contas dentro do modal
$plano="<li onclick=registro(100,'Ativo')>100 Ativo</li>"
. "<li onclick=registro(200,'Passivo')>200 Passivo</li>"
. "<li onclick=registro(300,'Receita')>300 Receita</li>"
. "<li onclick=registro(400,'Despesa')>400 Despesa</i>";
echo "<div id=divmodal2 class=modal2><div class=modal2-content>$plano</div></div>";
?>
_1.php plano de contas usando o motor mysqli do PHP

<meta name="viewport" content="width=device-width, initial-scale=1">

<style> 
li {list-style-type: none;}
form {margin: 0;} 
.modal2 { display: none; position: absolute; z-index: 1; padding-top: 100px; left: 0; top:0;
		 width: 100%;   height: 50%;   overflow: auto; }
.modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;}
</style>

<script>
var lçto = "";
var descrição = "";
function lançar(id,jd) {
	lçto=id;
	descrição=jd;
	divmodal2.style.display="block";};
function registro(id,jd) {
	divmodal2.style.display="none";
	eleconta = document.getElementById(lçto);
	eledescrição = document.getElementById(descrição);
	eleconta.value=id;
	eledescrição.innerHTML=jd;}
</script>

<?php
// tela de registro contábil
echo "<table><tr><th><th><th></tr>"
. "<tr><td>Débito<td><input id=idebito onclick=lançar(id,'lidebito') size=2>"
. "<td><li id=lidebito></li></tr>"
. "<tr><td>Crédito<td><input id=icredito onclick=lançar(id,'licredito') size=2>"
. "<td><li id=licredito></li></tr>"
. "<tr><td>Histórico<td><td>Exemplo de lançamento</tr>"
. "<tr><td>Valor<td>100,00</tr></table>";

// tela do plano de contas dentro do modal
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select conta,descricao from tbconta");
$plano="";
while ($linha=$query->fetch_assoc()) {
	$conta = $linha['conta'];
	$descrição = $linha['descricao'];
	$java='registro('.$conta.',"'.$descrição.'")';
	$plano = $plano."<li onclick='$java'>$conta $descrição</li>"; }
echo "<div id=divmodal2 class=modal2><div class=modal2-content>$plano</div></div>";
mysqli_close($mysqli);
?>

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...