更新textarea上的mysql表模糊?

时间:2012-10-30 14:30:48

标签: php sql text area

我试图在用户点击文本区域时使文本区域更新mysql表中的信息。请有人指导我正确的方向。这就是我到目前为止所拥有的。我没有得到任何错误,但当我更新它时,更改仍然存在。

HTML CODE

    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">

<textarea id="title" textarea name="title" rows="10" style="width: 456px; 
    margin-top:3px;
    text-align:left;
    margin-left:-2px;
    height: 120px;
    resize: none; 
    border: hidden;" data-id='$idbio'><?php echo $profile['bio'] ?> </textarea>
</form>

Javascript代码

<script type="text/javascript">

$('textarea').on('blur',function () {
    var titleVal = $(this).val(), id = $(this).data('id');        

    $.ajax({
         type: "POST",
         url: "changebio.php",
         data: {title:titleVal , id:id},
         success: function(msg) {
             $('#'+id).html(msg);
         }
   })
});

</script>

changebio.php

 <?php
require_once("session.php"); 
require_once("functions.php");
require('_config/connection.php');
update_profilebio ();
header('Location: http://www.something.com/confirm.php');
?>

function.php

 function update_profilebio() {
            global $connection;
            global $profile_id;
            $query = "UPDATE ptb_profiles
                      SET bio='value'
                        WHERE ptb_profiles.user_id = \"$profile_id\"
                        AND ptb_profiles.user_id = ptb_users.id";
            $update_profilebio_set = mysql_query($query, $connection);
            confirm_query($update_profilebio_set);
            return $update_profilebio_set;

            }

2 个答案:

答案 0 :(得分:0)

有很多可能的原因,为什么这不起作用。其中许多都可以在一个不错的浏览器中通过控制台快速检查。

我可以看到可能导致问题是AJAX调用后的成功(意味着AJAX调用需要成功)。您尝试将返回的HTML值重新指定为$('#'+id).html(msg);,其中id实际上不是这种情况下的选择器,id = $(this).data('id')是数据ID。

我个人会将$idbio附加到id属性的末尾,如下所示:

  <textarea id="title-<?php echo $idbio;?>" textarea name="title" data-id="<?php echo $idbio;?>">
    <?php echo $profile['bio'] ?>
  </textarea>

  <script type="text/javascript">

    $('textarea').on('blur',function () {
        var titleVal = $(this).val(), 
            id = $(this).data('id');        

        $.ajax({
             type: "POST",
             url: "changebio.php",
             data: {title:titleVal , id:id},
             success: function(msg) {
                 $('#title-' + id).val(msg);
             }
       })
    });

  </script>

答案 1 :(得分:-1)

为什么使用“on”方法?你可以这样做:“$('textarea')。blur(function(){...});”,我不知道你在这里使用的“数据”方法是什么:“$(这个).data('id')“,当我想在我的节点中获取一个id时,我只是为了这个:”$(this).attr('id');“,另外一件事,你从textarea获取字符串在第一次使用方法“val()”,然后,你尝试使用“html()”放置一个字符串,这有点不对。