Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery AJAX发布到PHP文件以更新数据库而不是更新_Php_Jquery_Mysql_Ajax_Post - Fatal编程技术网

jQuery AJAX发布到PHP文件以更新数据库而不是更新

jQuery AJAX发布到PHP文件以更新数据库而不是更新,php,jquery,mysql,ajax,post,Php,Jquery,Mysql,Ajax,Post,我正在尝试构建一个小型CMS系统,我想使用AJAX和jQuery来实现 如果我不使用AJAX代码,我不知道为什么数据传递不正确。AJAX成功返回“成功” 感谢您的帮助 以下是我的Javascript: $(document).ready(function(){ var aboutContent = $('#aboutContent').attr('value'); $('#aboutUpdate').submit(function() { $.ajax({

我正在尝试构建一个小型CMS系统,我想使用AJAX和jQuery来实现

如果我不使用AJAX代码,我不知道为什么数据传递不正确。AJAX成功返回“成功”

感谢您的帮助

以下是我的Javascript:

$(document).ready(function(){
    var aboutContent = $('#aboutContent').attr('value');
    $('#aboutUpdate').submit(function() {
        $.ajax({
            type: "POST",
            url: "scripts/update.php",
            data: "aboutUpdate="+aboutContent,
            beforeSend: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('processing...'); },
            success: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('Saved Successfully!').delay(500).fadeOut(250); },
            error: function(){ $('#aboutStatus').fadeIn(250).css('color', '#ff464a').html('An error occurred!').delay(500).fadeOut(250); }
        });
        return false;
    });
});
$('#aboutUpdate').submit(function() {
    $.ajax({
        type: "POST",
        url: "scripts/update.php",
        data: { aboutUpdate: $('#aboutContent').attr('value') },
        beforeSend: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('processing...');
        },
        success: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('Saved Successfully!').delay(2500).fadeOut(250);
        },
        error: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#ff464a').html('An error occurred!').delay(2500).fadeOut(250);
        }
    });
    return false;
});
这是我的HTML:

<?
$query = "SELECT * FROM pageContent WHERE page = 'about'";
$result = mysql_query($query);
while($rows = mysql_fetch_array($result)){
?>
    <div class="pageContent">
        <h2>About</h2>
        <form id="aboutUpdate" method="post">
        <textarea class="editor" id="aboutContent" cols="50" rows="20"><? echo $rows['content']; ?></textarea>
        <input type="submit" value="Save Now"><span class="updateStatus" id="aboutStatus"></span>
        </form>
    </div>
<?
}
?>

尝试以下Ajax功能:

 $.ajax({
        type: "POST",
        url: "scripts/update.php",
        data: { aboutUpdate: aboutContent },
        beforeSend: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('processing...'); },
        success: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('Saved Successfully!').delay(500).fadeOut(250); },
        error: function(){ $('#aboutStatus').fadeIn(250).css('color', '#ff464a').html('An error occurred!').delay(500).fadeOut(250); }
    });

请注意POST数据行中的更改。

绝对可以肯定,使用此
数据:“aboutUpdate=“+aboutContent
发送的内容完全错误

它应该是
data:{aboutUpdate:aboutContent}

另外,我不确定textarea是否有属性值。试一试

$('#aboutContent').val()


修正了这个问题。以下是如何:

首先在TEXTAREA上,我需要指定属性

name="aboutUpdate"
因此PHP isset可以提取数据

其次,我注意到在提交时变量是“未定义的”

var aboutContent = $('#aboutContent').attr('value');
以下是工作Javascript:

$(document).ready(function(){
    var aboutContent = $('#aboutContent').attr('value');
    $('#aboutUpdate').submit(function() {
        $.ajax({
            type: "POST",
            url: "scripts/update.php",
            data: "aboutUpdate="+aboutContent,
            beforeSend: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('processing...'); },
            success: function(){ $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('Saved Successfully!').delay(500).fadeOut(250); },
            error: function(){ $('#aboutStatus').fadeIn(250).css('color', '#ff464a').html('An error occurred!').delay(500).fadeOut(250); }
        });
        return false;
    });
});
$('#aboutUpdate').submit(function() {
    $.ajax({
        type: "POST",
        url: "scripts/update.php",
        data: { aboutUpdate: $('#aboutContent').attr('value') },
        beforeSend: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('processing...');
        },
        success: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#017c04').html('Saved Successfully!').delay(2500).fadeOut(250);
        },
        error: function(){
            $('#aboutStatus').fadeIn(250).css('color', '#ff464a').html('An error occurred!').delay(2500).fadeOut(250);
        }
    });
    return false;
});
HTML:


您是否已通过ajax将名为的页面连接到数据库?您是否启用了
以查看那里是否发生了任何事情?另外,通过移动
exit('n行后退出应用程序'),尝试单步执行代码@coosal我有一个jquerycalled@Ohgodwhy我已经有了,AJAX响应是4或成功。我试过了,同样的问题,数据库并没有改变。刚刚重试,仍然失败。在PHP脚本的末尾添加一个else语句以查看数据库更新是否正在进行。嗯,如果您将MySQL更改为:
“update pageContent SET content=”“$aboutContent.”“WHERE page='about'”
@Johnathan Bristow我尝试过,数据库仍然没有更新,如果我将upload.php POST设置为GET并调用upload.php?aboutUpdate=blah blah blah,它会工作。文本区域中的文本是否包含诸如“或”之类的特殊字符?
<?
$query = "SELECT * FROM pageContent WHERE page = 'about'";
$result = mysql_query($query);
while($rows = mysql_fetch_array($result)){
?>
    <div class="pageContent">
        <h2>About</h2>
        <form id="aboutUpdate" method="post">
        <textarea class="editor" id="aboutContent" name="aboutUpdate" cols="50" rows="20"><? echo $rows['content']; ?></textarea>
        <input type="submit" value="Save Now"><span class="updateStatus" id="aboutStatus"></span>
        </form>
    </div>
<?
}
?>
$aboutContent = mysql_real_escape_string($_POST['aboutUpdate']);
if(isset($_POST['aboutUpdate'])){
    $query="UPDATE pageContent SET content='".$aboutContent."' WHERE page='about'";
    $result=mysql_query($query)or die(mysql_error());
    if($result){
        echo "Success";
    }
    else{
        echo "Update Error";
    }
}