[英]PHP AJAX MySQL DELETE not working
我為此使用Javascript(而非JQuery)。 我正在嘗試從MySQL數據庫中刪除使用復選框選中的記錄。 使用AJAX不會發生刪除。 但是,我使用相同的參數手動調用PHP AJAX刪除腳本,刪除工作正常。 但是,當我手動運行AJAX PHP時,即使所有內容都在同一服務器和同一域上,我的Firefox瀏覽器也會報告COR。
這是HTML,Javascript和AJAX PHP刪除腳本:
如果重要,則此html位於iframe中:
<form name='frmDelFiles' method='POST' class='frmFileUpload' onClick='delChkdFiles("files2del")'>
<input type='submit' value='Delete Checked Files' name='delFiles' class='btnSubmit' />
</form>
Javascript:
function delChkdFiles(theCBgrp) {
var where_stmt = "";
var names = "";
var elements = document.getElementsByName(theCBgrp);
for (var i = 0, l = elements.length; i < l; i++)
{
if (elements[i].checked)
{
var response = confirm("Do you consent to delete the " + elements[i].value + " file?\n\nClick OK if Yes, otherwise Cancel.");
if (response == true) {
if (where_stmt == "") {
where_stmt = "id=" + elements[i].id;
names = elements[i].value;
} else {
where_stmt += " OR id=" + elements[i].id;
names += ", " + elements[i].value;
}
}
}
}
if (where_stmt == "") {
alert("Zero files have been selected for deletion.");
} else {
xmlhttp=getHTTPObject();
if (xmlhttp==null) {
alert ("Your browser does not support AJAX!");
return;
}
var url="/php/del_mysql_rcd.php";
url=url+"?table=ip_attachments";
url=url+"&where_stmt="+where_stmt;
url=url+"&names="+names;
url=url+"&sid="+Math.random();
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange = handleShowResponse;
xmlhttp.send(null);
}
}
function handleShowResponse() {
if (xmlhttp.readyState==4) {
var ajaxStr = xmlhttp.responseText;
alert(ajaxStr);
}
}
del_mysql_rcd.php AJAX PHP:
<?php
$table = $_GET["table"];
$where_stmt = $_GET["where_stmt"];
$names = $_GET["names"];
require_once ('../php/mysql_connect.php'); // Connect to the db.
$query = "DELETE FROM $table WHERE $where_stmt";
$result = @mysql_query ($query) or die(mysql_error()); // Run the query.
if (mysql_affected_rows() > 0) {
echo "Successfully deleted $names\n";
} else {
echo "Failed to delete $names\n";
}
?>
Firebug控制台以紅色顯示AJAX調用。
間隔服務器錯誤時,firebug以紅色顯示ajax調用
如果重要,則此html位於iframe中:
但是,當我手動運行AJAX PHP時,即使所有內容都在同一服務器和同一域上,我的Firefox瀏覽器也會報告COR。
require_once ('../php/mysql_connect.php');
我想說這是一個路徑錯誤,當您嘗試要求mysql_connect.php
會生成一個間隔服務器錯誤,當直接從瀏覽器直接調用時不會發生,例如,iFrame可能與原始路徑混淆。
實際上,如果iFrame與您打擾,它甚至可能無法到達目的地
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.