-1

ユーザーがテキスト領域をクリックすると、テキスト領域がmysqlのテーブルの情報を更新するようにしようとしています。誰かが私を正しい方向に導いてくれますか。これは私がこれまでに持っているものです。エラーは発生しませんが、更新すると変更が保存されません。

HTMLコード

    <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');
?>

関数.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 呼び出しが成功する必要があることを意味します)。この場合、 は実際にはセレクターではなく、$('#'+id).html(msg);データID です。idid = $(this).data('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(){...});"、そしてここで使用した "data" メソッドが何をするのかわかりません: "$(this .data('id')"、ノードで ID を取得したい場合は、"$(this).attr('id');" とします。また、textarea から文字列を取得します。最初はメソッド「val()」で、その後、「html()」で文字列を入れようとすると、何か問題があります。

于 2012-10-30T14:47:49.860 に答える