在db中保存textarea的文本

时间:2013-12-20 08:41:38

标签: php jquery html ajax textarea

问题如下

  • 我必须保存从html页面中取出的textarea的内容
  • 使用$ .ajax调用将其发送到php文件
  • 向db写入textarea
  • 的内容
  • 使用另一个php文件从数据库中读取textarea的内容,而不会丢失文本的格式
  • 在另一个textarea中显示已恢复的文本

例如

保存

您好 你好 喂

显示

您好 你好 喂

而不是hellohellohello

我试过这样,但我丢失了文本的格式

我的html页面

<textarea id="materiale1" style="margin-top: 0px;width: 715px;height:70px;max-width:715px;max-height:70px;" class="k-textbox"></textarea>

<a href="#" onclick="scrivi();return false;"><span class='k-button' style="margin-top: 0px;"><h3>SCRIVI</h3></span></a>

<textarea id="materiale2" style="margin-top: 80px;width: 715px;height:70px;max-width:715px;max-height:70px;" class="k-textbox"></textarea>

<a href="#" onclick="leggi();return false;"><span class='k-button' style="margin-top: 72px;"><h3>LEGGI</h3></span></a>

调用函数将textarea文本发送到文件php

function scrivi(){

$.ajax({ 
    type: "GET",
    url : "test_scrivi.php?testo="+$('#materiale1').val(),
    dataType:'json',
    cache: false,
    success: function(dati){ 

     }
     , error : function(errore){ 
     } 
    });
}

文件php(test_scrivi.php)用于保存textarea的文本

<?php


 try {

include('../../login/connect_db.php');

$db = new PDO("mysql:host=$my_hostname;dbname=$my_db_name", $my_username, $my_password);

$testo = nl2br($_GET['testo']);

$query = "UPDATE test SET testo='".$testo."' WHERE id = 1";

$result = $db->query($query);


} 
catch(PDOException $e)
{
        //echo $e->getMessage();
}


?>

调用函数读取textarea文本

function leggi(){

    $.ajax({ 
            type: "GET",
            url : "test_leggi.php",
            dataType:'json',
            cache: false,
            success: function(dati_arrivati){ 

                $('#materiale2').val(dati_arrivati)

            }
            , error : function(errore){ 
              } 
        });


}

文件php(test_leggi.php)用于读取textarea的文本

<?php


try {

    include('../../login/connect_db.php');

    $db = new PDO("mysql:host=$my_hostname;dbname=$my_db_name", $my_username, $my_password);

    $query = "SELECT * FROM test WHERE id = 1";

    $result = $db->query($query);

    header("Content-type: application/json");

    $testo = "";

    foreach($result as $row)
        {

            $testo = nl2br($row['testo']);


        } 

    echo json_encode($testo);

    $db = null;

} 
catch(PDOException $e)
{
        //echo $e->getMessage();
}


?>

1 个答案:

答案 0 :(得分:1)

将您的AJAX调用更改为:

$.ajax({ 
    type: "GET",
    url : "test_scrivi.php",
    data: { testo: $('#materiale1').val() },
    dataType:'json',
    cache: false,
    success: function(dati){ 

     },
    error : function(errore){ 
     } 
});

您没有对该值进行正确的URL编码。当您使用数据对象时,jQuery会正确执行此操作。