2017-06-02 9 views
1

ユーザーテーブルのステータスを更新しようとしています - ユーザーがボタンをクリックしたときにphpページに送信するために私はajaxを使用しましたが、 .reload();.ページをリロードせずにボタンのステータスを変更できる方法はありますか?php + ajaxでページを更新しない

ボタン:データベースを更新

<i data="<?php echo $row['id'];?>" class="status_checks btn <?php echo ($row['payment_status'])? 'btn-success' : 'btn-danger'?>"><?php echo ($row['payment_status'])? 'Paid' : 'Unpaid'?></i> 

PHP

<?php 
extract($_POST); 
$user_id=$db->real_escape_string($id); 
$status=$db->real_escape_string($status); 
$sql=$db->query("UPDATE users SET payment_status='$status' WHERE id='$id'"); 
echo $sql; 

?> 

、最終的に、

<script type="text/javascript"> 
$(document).on('click','.status_checks',function(){ 
var status = ($(this).hasClass("btn-success")) ? 'Unpaid' : 'Paid'; 
var msg = (status=='Unpaid')? 'Unpaid' : 'Paid'; 
if(confirm("Are you sure to "+ msg)){ 
    var current_element = $(this); 
    url = "update.php"; 
    $.ajax({ 
    type:"POST", 
    url: url, 
    data: {id:$(current_element).attr('data'),status:status}, 
    success: function(data) 
     { 
      location.reload(); 
     } 
    }); 
    }  
}); 
</script> 
+2

の代わりに、 'div'またはあなたはそれがエラーでなく、作品の状態 – RST

答えて

0

echo $sql;は0または1

が返されjqueryのあなたは、例えば場合(データ)//ボタンの値の変更、他のための//ボタン値ドンということなステートメント他にあれば、あなたがしてlocation.reload()を置き換える必要があります

success: function(data) 
     { 
      if(data == 1) // success 
      { 
      $('.status-checks').each(function(){ 
       if($(this).attr(data) == $(current_element).attr('data')) 
       { 
        $(this).addClass('btn-success'); 
        $(this).text('Paid'); 
       } 
      }) 
      }else // failed 
      { 
      $('.status-checks').each(function(){ 
       if($(this).attr(data) == $(current_element).attr('data')) 
       { 
        $(this).addClass('btn-danger'); 
        $(this).text('Unpaid'); 
       } 
      }) 
      } 
     } 
    }); 
+0

を表示するために使用されているどんな要素の値を調整リロードそれだ「トンの変更、または他の文

。ボタンをクリックして更新するには、最初にステータスを変更しますが、ボタンの色だけではなくテキストをクリックします。それをクリックすると、ステータスが変更されます。ステータスが変更されると、同じ色。どうか、あなたは何が問題だろうと思いますか? –

+0

更新されたコードを確認してください – Rahul

+0

動作しませんでした。このより良い解決策をご存知ですか? –

0

としてリロードせずにボタンのクラスを更新することができます

関連する問題