【问题标题】:Can not add data into database using jquery ajax with php无法使用带有 php 的 jquery ajax 将数据添加到数据库中
【发布时间】:2014-07-18 15:19:54
【问题描述】:

我想使用 php 使用 jquery ajax 将数据存储到数据库中,但是当我单击提交按钮时,会显示一个空警报,并且提交按钮下方的消息已成功提交,但我的数据库中没有添加任何数据。我处于初学者级别在 jquery 和 ajax 中...任何帮助将不胜感激。

这是我的 HTML

<form method="POST" >
        <pre>
            <label for="">Enter Post Topic</label><input type="text" id="txt_topic_name" name="txt_topic_name"><br>
            <label for="">Enter Detail</label><textarea id="txt_detail" name="txt_detail"></textarea><br/>
            <label for=""></label><input type="button" id="btn_submit" name="btn_submit" value="submit"><br>
        </pre>
    </form>
    <div id="results"></div>

这是我的 javascript

$(document).ready(function(){
        $('#btn_submit').on('click',function(){
            var topic_name = $('#txt_topic_name').val();
            var detail     = $('#txt_detail').val();
            $.ajax({
                url   : "ajax/add_topic.php",
                type  : "POST",
                data  : {'txt_topic_name' : topic_name ,'txt_detail' : detail},
                success : function(data){
                    alert(data);
                    console.log(data);
                    $('#results').html("submitted succesfully");
                },
                error  : function(data){
                    // alert(data);
                    // console.log(data);
                }

            });
             // return false;

        });

     });

和 PHP

if (isset($_POST['btn_submit'])) {
    mysql_connect("localhost","root","") or die("Could not coonnect");
    mysql_select_db("forum") or die("could not select db");

    $topic_name  = mysql_real_escape_string($_POST['txt_topic_name']);
    $detail = mysql_real_escape_string($_POST['txt_detail']);

    $sql    = "INSERT INTO Topics(name,detail)  VALUES('$topic_name','$detail')";
    $query  = mysql_query($sql);
    if ($query) {
        echo "Sucess";
    }
    else{
        echo "Failed";

    }

}

【问题讨论】:

  • 你遇到了什么错误?
  • 你不能同时使用Form Submit和Ajax...两者各不相同
  • 没有错误只是从成功函数中弹出一个警报并且什么都不显示
  • @AntoKing 那只是一个按钮而不是提交按钮
  • 那我该怎么做你能解释一下...安托金

标签: javascript php jquery html ajax


【解决方案1】:
if (isset($_POST['txt_topic_name'])) {
    mysql_connect("localhost","root","") or die("Could not coonnect");
    mysql_select_db("forum") or die("could not select db");

    $topic_name  = mysql_real_escape_string($_POST['txt_topic_name']);
    $detail = mysql_real_escape_string($_POST['txt_detail']);

    $sql    = "INSERT INTO Topics(name,detail)  VALUES('$topic_name','$detail')";
    $query  = mysql_query($sql);
    if ($query) {
        echo "Sucess";
    }
    else{
        echo "Failed";

    }

}

【讨论】:

  • 随意添加一些文字来解释你做了什么以及为什么。
  • Thnx Man 它已添加到数据库中。你能解释一下我做错了什么吗。
  • @Er。 Sajal Tiwari 你能解释一下我做错了什么吗?
  • 实际上您正在发布以下数据'txt_topic_name':topic_name,'txt_detail':detail,并且在您的php文件中,您正在捕获尚未发布的按钮。
【解决方案2】:

数据对象应该是这样的

data: {txt_topic_name : topic_name ,txt_detail : detail}

而不是这个

data: {'txt_topic_name' : topic_name ,'txt_detail' : detail}

为了更好地检查帖子,请使用隐藏输入

<input type='hidden' value='true' name='submission' />

然后在 php 中检查 submission

if(isset($_POST['submission']) && $_POST['submission'] == 'true'){
  //the rest of your code
}

【讨论】:

  • 它仍然没有显示任何警报
  • @Xlander 数据对象应该是这样的……两者是一样的
  • 您是否在数据对象中包含submission: 'true'
  • @hindmost:嗯……嗯,我以前是这样写的:p……没关系。
  • data: {txt_topic_name : topic_name ,txt_detail : detail, submission: $('input[name="submission"]').val()} 然后在你的成功函数中,检查值dataif(data == 'Sucess') $('#results').html("submitted succesfully"); else $('#results').html("error");
猜你喜欢
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多