【问题标题】:Adding AJAX database entry to jQuery将 AJAX 数据库条目添加到 jQuery
【发布时间】:2012-07-01 07:17:11
【问题描述】:

如何在此脚本中添加用于数据库条目的 AJAX?它可以正常工作,并且我有 php 文件可以使用,但我一直遇到括号或语法问题。

这是有效的代码(看看http://jsfiddle.net/myuX3/5/

<HTML>
<HEAD>
<script type="text/javascript" src="js/jquery.js"> </script>
</HEAD>
<BODY>
<label for="message_wall">Share your message on the Wall</label>
<input type="text" id="message_wall" name="message_wall" />
<button id="submitbtn" type="submit">Post to wall</button>
<ul id="wall">
</ul>

<script type="text/javascript">
$(document).ready(function(){

$('#submitbtn').click(function() {

    var message_wall = $('#message_wall').val();
    var $d=$("<li>"+message_wall+"</li>").fadeIn(500,function() {
        $('#message_wall').val('');
    });
    $("ul#wall").prepend($d);

});
});
</script>
</body>
</html>

这是我对 ajax 的尝试。数据库中没有添加任何内容,但其他一切正常:

$(document).ready(function() {

    $('#submitbtn').click(function() {

    var message_wall = $('#message_wall').val();
    $.ajax({
        type: "POST",
        url: "insert.php",
        data: {
            'message_wall': message_wall
        },
        success: function() {
            var $d = $("<li>" + message_wall + "</li>").fadeIn(500, function() {
                $('#message_wall').val('');
            });
            $("ul#wall").prepend($d);
        }
    });
});​
});

以及随附的 php 文件:

<?php
if(isset($_POST['submitbtn'])){ /*is this the correct syntax?*/
   $message = $_POST['message_wall'];
/* Connection to Database */
$link = mysql_connect("localhost", "*****", "*****") or die("Couldn't make connection.");
@mysql_select_db("*******", $link) or die("Couldn't select database");

/* Remove HTML tag to prevent query injection */
$message = strip_tags($_POST['message_wall']);

mysql_query("INSERT INTO wall (message) VALUES ('$message')");
}


?>

【问题讨论】:

    标签: jquery mysql ajax post syntax


    【解决方案1】:

    更改随附的 php 文件

    <?php
    if(!empty($_POST['message_wall'])){ 
    /* Connection to Database */
    $link = mysql_connect("localhost", "*****", "*****") or die("Couldn't make connection.");
    @mysql_select_db("*******", $link) or die("Couldn't select database");
    
    /* Remove HTML tag to prevent query injection */
    $message = strip_tags($_POST['message_wall']);
    
    $done = mysql_query("INSERT INTO wall (message) VALUES ('".$message."')");
        if($done){
             echo true;
        }else{
            echo  false;
        }
    }
    ?>
    

    关于萤火虫错误

    success:function() {} 之后删除; 看到这个fiddle

    【讨论】:

    • 太好了,谢谢。不过,我想我在获取 php 文件时仍然有问题。上面我添加了更多关于每次运行时萤火虫捕获的信息,说“属性列表后缺少 }”。
    • 仍然出现错误。查看实时预览here
    • 对不起,我做到了,然后我仍然得到同样的错误。我又把它取下来了。
    • 您的脚本中有一些非法字符,请参阅​
    • 太棒了。让脚本工作。原来我正在本地更新我的文件,但它没有连接到服务器......:|但是,仍然没有将任何内容添加到数据库中。
    【解决方案2】:

    我认为这个调整会解决你的问题(你多了一个分号):

    $(document).ready(function() {
        $('#submitbtn').click(function() {
            var message_wall = $('#message_wall').val();
            $.ajax({
                type: "POST",
                url: "insert.php",
                data: {
                    'message_wall': message_wall
                },
                success: function() {
                    var $d = $("<li>" + message_wall + "</li>").fadeIn(500, function() {
                        $('#message_wall').val('');
                    });
                    $("ul#wall").prepend($d);
                } // ; <-- remove this semicolon 
            });
        });
    });
    

    【讨论】:

      【解决方案3】:
      <?php
      if(isset($_POST['submit'])){
      /* Connection to Database */
      $link = mysql_connect("localhost", "****", "****") or die("Couldn't make connection.");
      @mysql_select_db("****", $link) or die("Couldn't select database");
      
      /* Remove HTML tag to prevent query injection */
      $message = strip_tags($_POST['message_wall']);
      
      $done = mysql_query("INSERT INTO wall (message) VALUES ('test')");
      if($done){
           echo true;
      }else{
          echo  false;
      }
      }
      ?>
      

      【讨论】:

      • 这是什么if(isset($_POST['submit'])){ ??将其更改为if(!empty($_POST['message_wall'])){
      • 你帮了大忙,diEcho!非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      相关资源
      最近更新 更多