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

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

报告相同问题?

悬赏问题

  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真