2016-07-06 7 views
0

これは尋ねられましたが、私は他のトピックを見ていましたが、答えを見つけることができませんでした。2つ以上のajaxが1つのPHPファイルを呼び出す

私は同じページを指す2つのajax呼び出しを持っています。 1つは言語の選択を削除し、もう1つは教育の経験を削除します。奇妙なことは、PHPページの最後のクエリが動作することです(現時点では言語です)。

編集: 最初のクエリが機能しないのはなぜですか?


PHP

/*------------------------------------------ 
[NANY EDUCATION EXP DELETE] 
-------------------------------------------*/ 
if(isset($_POST['education_id']) && !empty($_POST['education_id'])){ 
    $education_id = $_POST['education_id']; 
    $stmt = $user_home->runQuery("DELETE FROM user_education WHERE education_id=:education_id"); 
    $stmt->execute(array(':education_id' => $education_id)); 
    $response_array['status'] = 'success'; 
}else{ 
    $response_array['status'] = 'error'; 

} 

/*------------------------------------------ 
[NANY LANGUAGE EXP DELETE] 
-------------------------------------------*/ 
if(isset($_POST['language_id']) && !empty($_POST['language_id'])){ 
    $language_id = $_POST['language_id']; 
    $stmt = $user_home->runQuery("DELETE FROM user_language WHERE language_id=:language_id"); 
    $stmt->execute(array(':language_id' => $language_id)); 
    $response_array['status'] = 'success'; 
}else{ 
    $response_array['status'] = 'error'; 

} 

JS


  /*------------------------------------------ 
      [NANY EDUCATION EXP DELETE] 
      -------------------------------------------*/ 
      $(document).on("click", ".deleteEducationEXP", function (e) { 
       e.preventDefault(); 
       var education_id = $(this).attr('id'); 
       $(this).parent().parent().parent().fadeOut(300, function() { $(this).remove(); }); 

       $.ajax({ 
        type: "POST", 
        url:'PHP/deleteData.php', 
        data:"education_id=" + education_id, 
        success:function(data){ 
         if(data.status == 'success'){ 
          console.log("success"); 
         }else if(data.status == 'error'){ 
          console.log("error"); 
         } 
        },  
        error: function(jqXHR, textStatus, errorThrown, data){ 
         console.log(jqXHR, textStatus, errorThrown, data); 
        } 
       }); 
      }); 

      /*------------------------------------------ 
      [NANY LANGUAGE EXP DELETE] 
      -------------------------------------------*/ 
      $(document).on("click", ".deleteLangugage", function (e) { 
       e.preventDefault(); 
       var language_id = $(this).attr('id'); 
       $(this).parent().parent().fadeOut(300, function() { $(this).remove(); }); 

       $.ajax({ 
        type: "POST", 
        url:'PHP/deleteData.php', 
        data:"language_id=" + language_id, 
        success:function(data){ 
         if(data.status == 'success'){ 
          console.log("success"); 
         }else if(data.status == 'error'){ 
          console.log("error"); 
         } 
        },     
        error: function(jqXHR, textStatus, errorThrown, data){ 
         console.log(jqXHR, textStatus, errorThrown, data); 
        } 
       }); 
      }); 
+3

質問をするのを忘れましたか?何が必要な助けですか? –

+0

私はここに質問がないので、話題としてこの質問を閉じることに投票しています。 –

+0

@PraveenKumar oops。私は編集しました。編集をうかがってください – raqulka

答えて

2

(教育EXPを削除しようとしたときに)問題は、両方のelse句が$response_array['status'] = "error";を設定することです。

教育を削除すると、最初のifブロックが成功し、教育テーブルから削除され、$response_array['status'] = "success";が設定されます。その後、次のifブロックに進み、失敗して$reponse_array['status']を上書きします。

elseifを組み合わせて使用​​してください。

if(!empty($_POST['education_id'])){ 
    /*------------------------------------------ 
    [NANY EDUCATION EXP DELETE] 
    -------------------------------------------*/ 
    $education_id = $_POST['education_id']; 
    $stmt = $user_home->runQuery("DELETE FROM user_education WHERE education_id=:education_id"); 
    $stmt->execute(array(':education_id' => $education_id)); 
    $response_array['status'] = 'success'; 
}elseif(!empty($_POST['language_id'])){ 
    /*------------------------------------------ 
    [NANY LANGUAGE EXP DELETE] 
    -------------------------------------------*/ 
    $language_id = $_POST['language_id']; 
    $stmt = $user_home->runQuery("DELETE FROM user_language WHERE language_id=:language_id"); 
    $stmt->execute(array(':language_id' => $language_id)); 
    $response_array['status'] = 'success'; 
}else{ 
    $response_array['status'] = 'error'; 
} 

ところで、あなたはそれが最初に設定されていますかempty()チェックするので、isset()!empty()の両方を使用する必要はありません。

+0

ありがとうございます!今素晴らしい仕事。本当に助けに感謝します。 – raqulka

関連する問題