動的IDをパラメーターとして関数に渡し、htmlリンクに出力する以下の関数を定義しました。それが呼び出すスクリプトは、データベース レコードを更新し、クエリが成功したか、ID が何らかの検証に失敗したかに基づいて、成功または失敗のアラートを返します。
function cancel_file(id){
jQuery.ajax({
type: "POST",
url: "https://www.mysite.com/cancel.php",
data: 'id='+ id,
cache: false,
success: function(response){
console.log(response);
if(response == 1){
alert('File successfully cancelled!');
}
}
error: function(response){
console.log(response);
if(response == "invalid_id"){
alert('The file ID format is invalid');
}else if(response == "no_record_found"){
alert('No file found with ID specified');
}
}
});
}
そして、私は次のように私のドキュメントのセクションでそれを呼び出しています
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="/js/jquery.js"></script>
ページ上のリンクは、次の php コードを使用して出力されます
<?php echo "<a href='#' onclick='cancel_file(".$id.")'>Cancel </a>"; ?>
リンクをクリックしても何も起こらず、Chrome JS デバッガー コンソールを調べると、「Uncaught ReferenceError: cancel_file is not defined」と表示されます。document.ready() 内で定義された関数が Chrome と FF によって無視されることを読んだので、その宣言を一番上から削除しました。私はまだjQueryに慣れていないので、どんな助けでも大歓迎です。
ティア
cancel.php
<?php
// Get the fileid and make sure it's in a valid format
$id = $_POST['id'];
if(!ctype_digit($id)){
$response = "invalid_id";
}else{
// If validation passes proceed to queries and cancellation process
$q1 = "UPDATE `table_files` SET `is_invalid` = 1 WHERE `id` = '".$id."'";
$r1 = mysql_query($q1) or die(mysql_error());
if(mysql_affected_rows() > 0){
$response = mysql_affected_rows();
}else{
$response = "no_record_found";
}
echo $response;
?>
$response は、jQuery 関数に戻す必要があるものです。