php - jQuery AJAX POST 到 PHP 文件来 UPDATE 数据库未更新

标签 php jquery mysql ajax post

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

如果我不使用 AJAX,代码就可以工作,我不知道为什么数据没有正确传递。 AJAX 成功返回“Success”

感谢任何帮助。

这是我的 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;
    });
});

这是我的 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>
<?
}
?>

这是 PHP (scripts/update.php):

$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";
    }
}
else{
    header("location:http://google.com");
}

最佳答案

已解决问题。方法如下:

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

name="aboutUpdate"

这样 PHP isset 就可以提取数据了。

其次,我注意到提交时有一个变量“未定义”。

var aboutContent = $('#aboutContent').attr('value');

这是有效的 Javascript:

$('#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" name="aboutUpdate" cols="50" rows="20"><? echo $rows['content']; ?></textarea>
        <input type="submit" value="Save Now"><span class="updateStatus" id="aboutStatus"></span>
        </form>
    </div>
<?
}
?>

PHP 更新.php:

$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";
    }
}

关于php - jQuery AJAX POST 到 PHP 文件来 UPDATE 数据库未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11999290/

相关文章:

php - strtotime() 未转换为时间戳

javascript - 映射 JSON 数据并对 2 个 div 进行排序

mysql - 如何从我的谷歌应用程序引擎标准项目连接到远程 mysql?

php - MySql - 管理数据的显示顺序

php - TYPO3 扩展库 : How to access "modified" flag of my object property?

php - 将 Symfony 实体导出为 CSV

php - ZendFramework - 如何获取数据库插入错误并停止自动重定向到错误页面?

php - ajax 调用没有响应

javascript - 如何在鼠标悬停时将 CSS 类动态添加到表格行

php - 在 MySQL 结果中包含重复结果