更新textarea上的mysql数据单击关闭

时间:2014-01-08 14:12:51

标签: javascript php jquery html mysql

我的代码如下:

<?php
$stmt = $pdo_conn->prepare("SELECT * from controldata where field = :field ");
$stmt->execute(array(':field' => 'notice_board'));
$result = $stmt->fetch();
?>
<textarea id="notice_board_textarea" data-id="notice_board" rows="8"><?php echo stripslashes(strip_tags($result["value"])); ?></textarea>
<script type="text/javascript">
$('#notice_board_textarea').on('blur', function () { // don't forget # to select by id
    var id = $(this).data('id'); // Get the id-data-attribute
    var val = $(this).val();
    $.ajax({
        type: "POST",
        url: "dashboard.php?update_notice_board=yes",
        data: {
            notes: val, // value of the textarea we are hooking the blur-event to
            itemId: id // Id of the item stored on the data-id
        },
    });
});
</script>

从MySQL数据库中选择数据并在textarea中显示

然后JS代码通过将数据发布到另一个页面来更新它,但不刷新页面或单击保存/提交按钮

在dashboard.php上的

我有这个代码:

if($_GET["update_notice_board"] == 'yes')
{
    $stmt = $pdo_conn->prepare("UPDATE controldata SET value = :value WHERE field = :field ");
    $stmt->execute(array(':value' => $_POST["notes"], ':field' => 'notice_board'));
}

但它没有更新数据

我做错了什么?

2 个答案:

答案 0 :(得分:0)

更新回答:

根据以下评论中的内容,我的猜测是,这是一个服务器方面的问题,超出了这里分享的内容。也许dashboard.php是清空超级全局的框架的一部分,或者请求可能不会直接发送到dashboard.php

旧建议

当你使用type: "POST"时,你不会在$_GET变量中找到参数。(U:实际上你可能会在$_GET找到它,但在我认为将所有变量放在$_GET$_POST中更为清晰,尽管可能存在偏好分裂的语义参数。

将您的参数添加到ajax调用的data对象中,然后从$_POST变量中读取它:

$.ajax({
    type: "POST",
    url: "dashboard.php",
    data: {
        notes: val, // value of the textarea we are hooking the blur-event to
        itemId: id, // Id of the item stored on the data-id
        update_notice_board:"yes"
    },
    success: function(reply) {
        alert(reply);
    },
    error:function(jqXHR,  textStatus,  errorThrown ) {
        alert(textStatus);
    }
});

if($_POST["update_notice_board"] == 'yes')

(如果您不关心请求是获取还是发布,您也可以查看$_REQUEST。)

比较文档条目:

http://www.php.net/manual/en/reserved.variables.get.php

http://www.php.net/manual/en/reserved.variables.post.php

http://www.php.net/manual/en/reserved.variables.request.php

工作客户端示例: http://jsfiddle.net/kLUyx/

答案 1 :(得分:0)

错:

if ($_POST["update_notice_board"] == 'yes') {

右:

if ($_GET['update_notice_board'] == 'yes') {

当您直接向网址添加内容时,它始终是GET:

url: "dashboard.php?update_notice_board=yes",