我在使用PHP,Javascript和AJAX製作刪除系統時遇到了麻煩。我之前做過,但這次PHP和AJAX不會聯繫,Javascript腳本也不會做任何事情。PHP和AJAX不能一起工作
在Javascript文件中(server-log.js)警告某些東西不起作用,它不會來。這也不適用於AJAX/PHP處理程序文件(server-log.handler.php)。 控制檯錯誤沒有給出任何錯誤作爲回報,所有文件中的URL也是正確的。這是因爲我可以從Chrome中
JS腳本(服務器log.js)找到控制檯錯誤的每個文件:
$('.btn btn-xs btn-danger').click(function(){
var press = $.this.attr('id');
var press_url = 'action=delete&id='+press;
$.ajax({
type: 'POST',
url: 'panel/includes/handlers/server-log.handler.php',
data: press_url,
success: function(responseText)
{
$.parseJSON(responseText);
/* If and else controlling system */
if(responseText.indexOf(1) > -1)
{
$("#danger").append('<strong>Helaas!</strong> Het is niet gelukt om de gevraagde log rij te verwijderen');
}
else if(responseText.indexOf(2) > -1)
{
$("#danger").append('<strong>Helaas!</strong> Het opgegeven ID nummer is niet geldig');
}
else if(reponseText.indexOf(100) > -1)
{
$("#success").append('<strong>Goed!</strong> De gevraagde log is succesvol verwijderd');
}
else
{
$("#info").append('<strong>Info:</strong> Er is helaas een onbekende fout opgetreden <i>2255200914</i>');
}
}
});
});
HTML部分(服務器log.php)
<div class="alert alert-success" style="display: none;" id="success"></div>
<div class="alert alert-danger" style="display: none"; id="danger"></div>
<div class="alert alert-info" style="display: none;" id="info"></div>
<div class="error-log sscroll">
<ul>
<form method="post">
<?php
while($arrayLogs = $arrayqLogs->fetch_array())
{
?>
<li>
<span class="green">[<?php echo $arrayLogs['date']; ?>]</span>
<span class="red">[<?php echo $arrayLogs['action']; ?>]</span>
[<?php echo $arrayLogs['name']; ?>] <?php echo $arrayLogs['url']; ?>
<button class="btn btn-xs btn-danger" name="deleting" id="<?php echo $arrayLogs['id']; ?>"><i class="fa fa-times"></i></button>
</li>
<?php
}
?>
</form>
</ul>
</div>
PHP的處理程序部分(服務器log.handler.php)
<?php
include_once '../config.php';
if(isset($_POST['action']) && $_POST['action'] == 'delete')
{
$intAction = trim($_POST['id']);
$error = array();
$bolean = false;
# Prepared statement
$stmt = $mysqli->prepare("SELECT id,name,action,url,date FROM logs WHERE id = ?");
$stmt->bind_param('i', $intAction);
$stmt->execute();
$intStatement = $stmt->num_rows();
$stmt->close;
/* Controlling part */
if($intStatement == 0)
{
$error[] = 1;
$bolean = true;
}
elseif(!ctype_digit($intAction))
{
$error[] = 2;
$bolean = true;
}
// Deleting and notifying
if($bolean == false)
{
$stmt = $mysqli->prepare("DELETE FROM logs WHERE id = ?");
$stmt->bind_param('i', $intAction);
$stmt->execute();
$stmt->close();
# Returning error code
$error[] = 100;
}
/* Returning the value in a readable way */
header('Content-Type: application/json');
echo json_encode($error);
}
?>
所以這不是我第一次做這在我的網站,b我也沒有經常這樣做,所以我認爲我做了很多錯誤的事情。我非常感謝你們的幫助,英語不是我的母語,所以對於任何語法/拼寫錯誤的單詞都很抱歉。
您是否發現'console.log()'停止響應的地步? – brasofilo 2014-09-20 21:29:48
你爲什麼執行'SELECT'查詢,但從來沒有使用它返回的結果? – Barmar 2014-09-20 21:40:14
@brasofilo如果我把它放在點擊函數之前,那麼我只能得到3個迴應中的1個... – RezaMO 2014-09-20 21:47:24