-1

当用户单击文本区域时,我正在尝试使文本区域更新 mysql 中表中的信息。有人可以指导我正确的方向吗?这就是我到目前为止所拥有的。我没有收到任何错误,但是当我更新它时,更改不会保存。

代码

    <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>

变化生物.php

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

函数.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;

            }
4

2 回答 2

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>
于 2012-10-30T15:04:32.780 回答
-1

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

于 2012-10-30T14:47:49.860 回答