使用AJAX / JSON / Jquery在数据库中插入数据

时间:2014-04-07 06:34:03

标签: javascript php json

我正在尝试创建一个小型聊天应用程序,但是为了缩小传输的字节数,还有其他方法可以编写这个比这段代码更重的javascript吗?

这是我的javascript:

function sendChatText() {

                if (sendReq.readyState == 4 || sendReq.readyState == 0) {
                    sendReq.open("POST", 'includes/getChat.php?last=' + lastMessage, true);
                    sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    sendReq.onreadystatechange = AjaxRetrieve();  
                    var param = 'message=' + document.getElementById('txtA').value;
                    param += '&name='+user;
                    param += '&uid='+uid;
                    param += '&rid='+document.getElementById('trg').value;
                    sendReq.send(param);
                    document.getElementById('txtA').value = '';
                }                           
            }

这也可以在JSON格式上完成吗?因为我觉得有人说json更轻..但不确定

这是我的PHP代码

$con = new PDO("mysql:host=". db_host .";dbname=chat_db", db_username , db_password);
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM users WHERE id = :rid LIMIT 1";
$stmt=$con->prepare($sql);
$stmt->bindValue( 'rid',$_POST['rid'], PDO::PARAM_STR);
$stmt->execute();
    foreach($stmt->fetchAll()as $res)
        {
            $usern = $res['username'];
            $user_lvl = $res['ulvl'];
        }
$text=$_POST['message'];
$sql4 = "INSERT INTO $tblname2(msgid,username,message_content,message_time,recipient)VALUES(:aid,:a,:b,NOW(),:c) ";
                    $stmt5 = $con2->prepare($sql4);
                    $stmt5->bindParam(':aid',$tblpre,PDO::PARAM_STR);
                    $stmt5->bindParam(':a',$_POST['name'],PDO::PARAM_STR);
                    $stmt5->bindParam(':b',$text,PDO::PARAM_STR);
                    $stmt5->bindParam(':c',$usern,PDO::PARAM_STR);
                    $stmt5->execute();

2 个答案:

答案 0 :(得分:1)

as user2401175 saies。为什么不使用框架,这就是他们的目的。

jQuery非常简单易懂。

你可以尝试添加它,就在你的""之前标签

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

在jQuery的这个包含下,您现在可以使用jQuery Post方法来执行ajax请求。

答案 1 :(得分:0)

在html中使用

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

然后像这样创建javascript对象

var changePacket = {
date1:value1,
data2:value2
}

发送Ajax请求

$.ajax({
    url: "phpFile.php",
    dataType: 'json',
    type: 'POST',
    data: {json:JSON.stringify(changePacket)},
    success: function(response) {
     alert('hip hip hurray');
    },
    error: function(response) {
     alert('some thing wrong happend');
    }
});

在php中

$json = $_POST['json'];
$data = json_decode($json);

现在使用您的变量$date->data1$date->data2