1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Carregar texto para o tinymce. AJUDEM PLEASE!!!!!!!!!!!!!!!!!!!!!!

Discussão em 'Web Development' iniciada por Fil__, 31 de Janeiro de 2008. (Respostas: 10; Visualizações: 2459)

  1. Fil__

    Fil__ Power Member

    Pessoal eu tenho o editor de texto tinymce na minha pagina. Tenho a ligaçao a base de dados a funcionar. Eu escrevo no editor, gravo e fica na base de dados mysql. Quando vou ver o que escrevi aparece o texto na pagina mas o que pretendo mesmo é que o texto nao aparece na pagina mas sim no tinymce. Tal e qual como um CMS (Joomla por exemplo). Expliquei-me bem?
    Alguem sabe como fazer? HELP!!! :005:
     
  2. JPBImpe

    JPBImpe What is folding?

    Como terás reparado, o tinymce é apenas um wrapper para uma <textarea></textare>. Se quiseres que o texto que vem da base de dados apareça lá tens de pór o resultado da query entre essas tags... do género <textarea><?php echo $row['texto']; ?></textarea>
     
    Última edição: 1 de Fevereiro de 2008
  3. Fil__

    Fil__ Power Member

    Tenho este codigo para gravar na base de dados
    Código:
    <?php
    $conexao = mysql_connect("****", "***", "***")
    or die ("Erro na ligação à banco de dados.");
    $db = mysql_select_db("****")
    or die ("Erro ao selecionar a base de dados.");
    
    $sql = "INSERT INTO paginas (texto) VALUES ('".$_POST['content']."')";
    
    $sql = mysql_query($sql)
    or die ("Houve erro na gravação dos dados.");
    ?>
    
    e este e o que vai buscar mas nao consigo mesmo colocar a carregar dentro do tinymce.

    Código:
    <?php
    $conexao = mysql_connect("****", "***", "***")
    or die ("Erro na conexão à base de dados.");
    $db = mysql_select_db("***")
    or die ("Erro ao selecionar a base de dados.");
    
    $sql = "SELECT * 
    FROM paginas 
    WHERE ver = '0' 
    ORDER BY id DESC 
    LIMIT 1000";
    
    /*
     * executa e trata a consulta
     */
    $resultado = mysql_query($sql) 
    or die ("Não foi possível realizar a consulta");
    if (@mysql_num_rows($resultado) == 1)
       die('Nenhum registro encontrado');
    }
    
    ?>
    <html>
    <head>
    <title>Noticias</title>
    <link href="bread.css" rel="stylesheet" type="text/css" />
    <script language="JavaScript" src="crumb.js"></script>
    <script language="javascript" type="text/javascript" src="***/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
    <script language="javascript" src="editor.js"></script>
    </head>
    <body>
    <div class="bread" id="bread"><script language="JavaScript">breadcrumbs();</script></div>
    <br>
    <form method="post" action="conteudo.php">
        <textarea name="content" cols="70" rows="15"><?php echo $texto;?></textarea>
        <input type="submit" value="Save" />
    </form>
    </body>
    </html>
    
    Podes ajudar-me no codigo?
     
  4. DanielGomes

    DanielGomes Power Member

    O teu problema tem a ver com o código que está um pouco baralhado.

    Atenção à query $sql que convém ter o id da página que queres consultar. O LIMIT 1000 ali não faz muito sentido e estás basicamente a puxar todas as páginas e não apenas uma.

    Devias ter algo como SELECT * FROM paginas WHERE id='1234567';

    Após fazeres $resultado=mysql_query($sql); convém veres se a página foi retornada. Se mysql_num_rows==0 (e não 1) é que a página não é encontrada.

    Se mysql_num_rows for 1 então tens de "puxar" o registo com $pagina=mysql_fetch_array($resultado);
    Agora sim podes fazer echo $pagina['campo_da_bd_que_tem_o_texto'];
     
  5. Fil__

    Fil__ Power Member

    Eh pah.... :005: Eu nao consigo. Ja experimentei de tudo, com voltas e mais voltas no codigo (graças as dicas aqui do pessoal) mas continuo a nao conseguir carregar o texto que gravo dentro do tinymce. Nao entendo no que tou a falhar mas ja tou no desespero por isso...
    AJUDEM PLEASE!!!
     
  6. p3dro

    p3dro Power Member

    Seguiste os passos que o DanielGomes te indicou?

    Coloca aqui o último código que tentaste. No código que tens uns posts acima (além dos pormenores que o DanielGomes te indicou) tens por ex isto:
    PHP:
    <textarea name="content" cols="70" rows="15"><?php echo $texto;?></textarea>
    Mas repara que nunca atribuiste um valor à variável $texto, terias de ter algo do tipo (depois de te certificares de que existe o registo pretendido e estás a buscar correctamente a informação à tabela):
    PHP:
    $texto=$pagina["texto"];
     
  7. Fil__

    Fil__ Power Member

    p3dro eu ja mexi no codigo mas como nao conseguia voltei a este que esta aqui exposto para que me possam auxilar porque tou completamente perdido. A unica diferença é esta
    Código:
    $sql = "SELECT * FROM paginas WHERE id='23'";
    
    Podem ajudar-me? :005:
     
  8. p3dro

    p3dro Power Member

    Bem, eu diria que isto deverá funcionar (pelo memos teoricamente :p)

    PHP:
    <?php
    $conexao 
    mysql_connect("****""***""***")
    or die (
    "Erro na conexão à base de dados.");
    $db mysql_select_db("***")
    or die (
    "Erro ao selecionar a base de dados.");

    $sql "SELECT texto FROM paginas WHERE id='23'";

    /*
     * executa e trata a consulta
     */
    $resultado mysql_query($sql)
    or die (
    "Não foi possível realizar a consulta");

    if (
    mysql_num_rows($resultado) == 0){
       die(
    'Nenhum registro encontrado');
    }
    else{
      
    $myrow=mysql_fetch_assoc($resultado);
      
    $texto=$myrow["texto"];
    }
    mysql_free_result($resultado);
    mysql_close($conexao);
    ?>
    Depois na textarea fica igual ao que já está

    PHP:
    <textarea name="content" cols="70" rows="15"><?php echo $texto;?></textarea>
    Vê se funciona desta maneira.
     
  9. Fil__

    Fil__ Power Member

    p3dro BRIGADAO, deu sim senhora. Outra duvida que surgiu é, agora ao carregar o texto (que ja faz graças a ti hehe) como e que posso alterar esse texto e gravar? Tera que ser outro comando de sql ou sera codigo php a parte? Brigadao de qualquer modo amigo (e a todos os outros que me ajudaram)
     
  10. p3dro

    p3dro Power Member

    Para actualizar pode ser semelhante ao código que já tinhas num post anterior:

    PHP:
    <?php
    $conexao 
    mysql_connect("****""***""***")
    or die (
    "Erro na ligação à banco de dados.");
    $db mysql_select_db("***")
    or die (
    "Erro ao selecionar a base de dados.");

    $id=$_POST["id"];
    $text=mysql_real_escape_string($_POST["content"]);

    if(!
    is_numeric($id) || $id<1){ //novo registo, inserir
      
    $sql "INSERT INTO paginas (texto) VALUES ('$text')";  
    }
    else{ 
    //actualizar registo
      
    $sql="Update paginas Set texto='$text' Where id='$id'";
    }

    $sql mysql_query($sql)
    or die (
    "Houve erro na gravação dos dados.");

    mysql_close($conexao);
    ?>
    Na instrução SQL onde vais preencher a textarea tens lá um valor hard-coded o " .... id='23' ...", claro que depois não vais poder ter dessa maneira, senão vais estar sempre a editar o mesmo registo. Uma solução será passares esse valor num hidden field, que é como exemplifiquei no código em cima: " ... $id=$_POST["id"]; ... ".

    Resumidamente o código poderia ficar desta maneira:

    Para preencher a textarea:

    PHP:
    <?php
    $conexao 
    mysql_connect("****""***""***")
    or die (
    "Erro na conexão à base de dados.");
    $db mysql_select_db("***")
    or die (
    "Erro ao selecionar a base de dados.");

    $id=$_REQUEST["id"];
    if(!
    is_numeric($id) || $id<1) die ("id inválido");
    $sql "SELECT texto FROM paginas WHERE id='$id'";

    /*
     * executa e trata a consulta
     */
    $resultado mysql_query($sql)
    or die (
    "Não foi possível realizar a consulta");

    if (
    mysql_num_rows($resultado) == 0){
       die(
    'Nenhum registro encontrado');
    }
    else{
      
    $myrow=mysql_fetch_assoc($resultado);
      
    $texto=$myrow["texto"];
    }
    mysql_free_result($resultado);
    mysql_close($conexao);
    ?>
    Preencher os campos do formulário (a alteração é adicionares o tal hidden field)
    PHP:
    <textarea name="content" cols="70" rows="15"><?php echo $texto;?></textarea> 
    <input type="hidden" name="id" value="<?php echo $id;?>">
    Para actualizar a informação na BD:
    PHP:
    <?php
    $conexao 
    mysql_connect("****""***""***")
    or die (
    "Erro na ligação à banco de dados.");
    $db mysql_select_db("***")
    or die (
    "Erro ao selecionar a base de dados.");

    $id=$_POST["id"];
    $text=mysql_real_escape_string($_POST["content"]);

    if(!
    is_numeric($id) || $id<1){ //novo registo, inserir
      
    $sql "INSERT INTO paginas (texto) VALUES ('$text')";  
    }
    else{ 
    //actualizar registo
      
    $sql="Update paginas Set texto='$text' Where id='$id'";
    }

    $sql mysql_query($sql)
    or die (
    "Houve erro na gravação dos dados.");

    mysql_close($conexao);
    ?>
     
  11. Fil__

    Fil__ Power Member

    Brigadao p3dro, aprendi um bom bocado de sql e php com estas tuas dicas. Se entretanto esbarrar com a corneta em mais alguma cena deixo aqui um post. Brigadao amigo
     

Partilhar esta Página