doushi4864 2013-02-03 22:02 采纳率: 100%
浏览 43
已采纳

AJAX / JQUERY没有更新MySQL行

I am currently trying to update a textarea when a user clicks elsewhere. I'm not well-versed in AJAX and Jquery. However, the script doesn't seem to be updating the row in the DB.

Jquery/Text area:

<textarea id="<?php echo $item_id; ?>_textarea"><?php echo $notes; ?></textarea>
    <script type="text/javascript">
    $('<?php echo $item_id; ?>_textarea').on('blur',function () {
var notesVal = $(this).val(), id = $(this).data('id');        
var itemVal = <?php echo $item_id; ?>;
$.ajax({
     type: "POST",
     url: "updateNotes.php",
     data: {notes:notesVal , id:id, itemId:itemVal},
     success: function(msg) {
         $('#'+id).html(msg);
     }
 })
});
</script>

updateNotes.php:

<?php

include('db_connect.php');
include('order_functions.php');



$email = $_SESSION['username'];

$cartId = getcartid($mysqli, $email);
$notes = $_POST['notes'];
$itemID = $_POST['itemId'];


$query = "UPDATE `rel` SET `notes` = '$notes' WHERE `cart_id` = '$cartId' && `id_item` = '$itemID'";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

if(result) {
return "Notes Updated";

} ?>

  • 写回答

1条回答 默认 最新

  • dounao1875 2013-02-03 23:37
    关注

    You forgot the $ in your last if-statement in your php-code and you should use "echo" (or likewise) instead of "return" as you are not in a function.

    <?php
    
    include('db_connect.php');
    include('order_functions.php');
    
    $email = $_SESSION['username'];
    
    $cartId = getcartid($mysqli, $email);
    $notes = $_POST['notes'];
    $itemID = $_POST['itemId'];
    
    
    $query = "UPDATE `rel` SET `notes` = '$notes' WHERE `cart_id` = '$cartId' && `id_item` = '$itemID'";
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__);
    
    if($result) {
        echo "Notes Updated";
    }
    ?>
    

    Your html/javascript-code is a bit wrong. This is how i guess you wanted it to work:

    <div id="<?php echo $item_id; ?>_div">
        <textarea id="<?php echo $item_id; ?>_textarea" data-id="<?php echo $item_id; ?>"><?php echo htmlentities($notes); ?></textarea>
    </div>
    
    $('#<?php echo $item_id; ?>_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: "updateNotes.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
            },
            success: function (msg) {
                $('#' + id + '_div').html(msg); //Changes the textarea to the text sent by the server
            }
        });
    });
    

    Good luck

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线