0

ユーザーに削除の確認を求める簡単なスクリプトがあり、プロセスが適切に完了したことを警告するだけです。

jConfirm を使用してみましたが、Javascript コンソールが「ReferenceError: jConfirm が定義されていません」と吐き出します。

<!-- jConfirm --> 
// the script is referenced properly    
<script src="/js/jconfirm/jquery.jconfirm-1.0.min.js"></script>


<script>
function careersDelete(career_id) {
  jConfirm('Are you sure you want to delete this career?', 'Delete Career', function (x) {
    if (x) {
        jQuery.ajax({
            url: "ajax_career_delete.php",
            type: "GET",
            data: "career_id=" + career_id,
            success: function (response) {
                alert('Career deleted');
            }
        });
    }
});

}

確認ダイアログを有効にするボタンには、次のものがあります。

<a href="#" onclick="careersDelete('<?php echo $career_id; ?>')">delete</a>
4

1 に答える 1

2

これらの例を確認すると、jquery を個別にソースする必要があること、および jconfirm がその名前空間内でのみ定義されていることがわかります。したがって、コードに次の 2 つを追加する必要があります。

<script src="/js/jquery.js"></script> <!-- or wherever jquery.js's path is -->
...
  $.jconfirm('Are you sure  ...
  // note jquery's $. namespace; and the non-capitalized "c" in jconfirm

さらに、$.jconfirm関数呼び出しは文字列を想定していません。その署名は次のとおりです。

function(options, callback)

そして、callbackはパラメーターを指定して実行されません (したがって、あなたのx意志は になりますundefined)。あなたが望んでいたのは、次のようなものだったようです:

function careersDelete(career_id) {
  jQuery.jconfirm({
       message: 'Are you sure you want to delete this career?',
       title: 'Delete Career'
  }, function () {
        jQuery.ajax({
            url: "ajax_career_delete.php",
            type: "GET",
            data: "career_id=" + career_id,
            success: function (response) {
                alert('Career deleted');
            }
        })
  });
}
于 2014-07-16T12:54:06.890 に答える