2013-02-03 2 views
0

사용자가 다른 곳을 클릭 할 때 현재 텍스트 영역을 업데이트하려고합니다. 나는 AJAX와 Jquery에 정통하지 않습니다. 그러나 스크립트는 DB의 행을 업데이트하지 않는 것 같습니다. ?AJAX/JQUERY MySQL 행을 업데이트하지 않습니다.

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

+0

왜 당신이 사용하는'데이터 (이 내가 당신이 일을하고 싶었 추측 어떻게? 요소에'data- *'속성이 없습니다. – undefined

+0

... 대신 무엇을 사용할 수 있습니까? 귀하의 답변은 제가 잘못하고있는 것을 이해하는 데 도움이되지 않습니다. –

답변

2

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

} 당신은 당신의 PHP 코드에서 마지막 경우 문에서 $를 잊어 버렸습니다 "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/자바 스크립트 코드가 약간 잘못되었습니다. `)

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

행운

+0

그러나 응답을 주셔서 감사합니다, 그것은 작동하지 않는 것 같습니다. 사용자는 계속해서 메모를 업데이트 할 수 있어야합니다. "$ ('#'+ id + '_div') .html (msg);" 그걸 막아. 어떤 일이 잘못되는지 확인하는 방법이 있습니까? 콘솔을 사용했지만 오류는 표시되지 않습니다. –

+0

사용자 세션을 시작하는 함수를 호출하는 것을 잊었습니다. -_- ' –

+0

Nice! 그것이 당신이 원했던 것처럼 그것이 효과가 있었다니 기쁘다 ..^_ ^ – hAmpzter

관련 문제