0

このスクリプトにデータベースエントリ用の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')");
}


?>
4

3 に答える 3

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;
    }
}
?>

Firebugエラーに関して

これを見;た後に削除しますsuccess:function() {}fiddle

于 2012-06-29T18:42:23.603 に答える
0

この調整で問題が解決すると思います(セミコロンが余分にあります)。

$(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 
        });
    });
});
于 2012-06-29T18:54:15.317 に答える
0
<?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;
}
}
?>
于 2012-06-29T19:13:31.300 に答える