0

現在、ユーザーが他の場所をクリックしたときにテキストエリアを更新しようとしています。私はAJAXとJqueryに精通していません。ただし、スクリプトはDBの行を更新していないようです。

Jquery /テキストエリア:

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

}?>

4

1 に答える 1

2

phpコードの最後のifステートメントで$を忘れたため、関数を使用していないため、「return」ではなく「echo」(または同様)を使用する必要があります。

<?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";
}
?>

あなたのhtml/javascript-codeは少し間違っています。これは私があなたがそれを機能させたかったと思う方法です:

<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
        }
    });
});

幸運を

于 2013-02-03T23:37:08.590 に答える