javascript - Ajax 数据库插入不起作用

标签 javascript php jquery mysql ajax

我正在尝试使用 ajax 将输入字段中的值插入到数据库中,作为对话系统的一部分。我使用的输入表单如下。

<input data-statusid="' .$statuscommentid. '" id="reply_'.$statusreplyid.'" class="inputReply" placeholder="Write a comment..."/>

使用下面的jquery,当用户按下回车键时,我执行一个函数。

  $(document).ready(function(){ 
$('.inputReply').keyup(function (e) {
    if (e.keyCode === 13) {
       replyToStatus($(this).attr('data-statusid'), '1',$(this).attr("id"));
    }
  });

  }); 

在这个函数中我遇到了问题,我用 jquery 调用该函数没有问题,但我在 ajax 上做错了一些事情,我不知道是什么?

$.ajax({ type: "POST", url: $(location).attr('href');, data: dataString, cache: false, success: function(){ $('#'+ta).val(""); } });

此外,这是我用来插入数据库的 php

    <?php //status reply input/insert
//action=status_reply&osid="+osid+"&user="+user+"&data="+data
if (isset($_POST['action']) && $_POST['action'] == "status_reply"){
    // Make sure data is not empty
    if(strlen(trim($_POST['data'])) < 1){
        mysqli_close($db_conx);
        echo "data_empty";
        exit();
    }
    // Clean the posted variables
    $osid = preg_replace('#[^0-9]#', '', $_POST['sid']);
    $account_name = preg_replace('#[^a-z0-9]#i', '', $_POST['user']);
    $data = htmlentities($_POST['data']);
    $data = mysqli_real_escape_string($db_conx, $data);
    // Make sure account name exists (the profile being posted on)
    $sql = "SELECT COUNT(userid) FROM user WHERE userid='$userid' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row = mysqli_fetch_row($query);
    if($row[0] < 1){
        mysqli_close($db_conx);
        echo "$account_no_exist";
        exit();
    }
    // Insert the status reply post into the database now
    $sql = "INSERT INTO conversation(osid, userid, postuserid, type, pagetext, postdate)
            VALUES('$osid','$userid','$postuserid','b','$pagetext',now())";
    $query = mysqli_query($db_conx, $sql);
    $id = mysqli_insert_id($db_conx);
    // Insert notifications for everybody in the conversation except this author
    $sql = "SELECT authorid FROM conversation WHERE osid='$osid' AND postuserid!='$log_username' GROUP BY postuserid";///change log_username
    $query = mysqli_query($db_conx, $sql);
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
        $participant = $row["postuserid"];
        $app = "Status Reply";
        $note = $log_username.' commented here:<br /><a href="user.php?u='.$account_name.'#status_'.$osid.'">Click here to view the conversation</a>';
        mysqli_query($db_conx, "INSERT INTO notifications(username, initiator, app, note, date_time) 
                     VALUES('$participant','$log_username','$app','$note',now())");
    }
    mysqli_close($db_conx);
    echo "reply_ok|$id";
    exit();
}

?>

提前感谢您的帮助,我们将不胜感激

最佳答案

为什么不为 Ajax 调用设置正确的 URL,而是使用 location.href?

var ajax = ajaxObj("POST", location.href);

此外,我猜 ajaxObj 没有定义或编码良好。您正在使用 jQuery,为什么不尝试一下 jQuery ajax?

http://api.jquery.com/jquery.ajax/

关于javascript - Ajax 数据库插入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34706055/

相关文章:

javascript - 尝试使用来自 Controller 的 json 数据加载 Simile 时间线

javascript - 如何将下拉列表中的箭头向左移动

javascript - 如何最小化 Angular 项目(开发中)的大小以将其上传到开发人员。服务器?

javascript - 在 moment.js 中以 ISO 日期格式将时间部分设置为 0

javascript - 谷歌地图路线点击事件

php - 我如何在php中将值与一个整数分开

php - mysql使用子查询结果过滤结果

javascript - 页面加载时的 CSS 动画

php - 在 WordPress 中通过 POST 请求保留自定义 GET 参数

jquery - 一个标签中的多个类(jquery 和 css)