JavaScript、PHP、Bootstrap-疑似模态错误-PHP文件无法从JavaScript文件接收值
我已经建立了一个数据库。我还有一个函数(在JavaScript中)可以“捕获”按下按钮的元素的id,如下所示:JavaScript、PHP、Bootstrap-疑似模态错误-PHP文件无法从JavaScript文件接收值,javascript,php,ajax,bootstrap-modal,Javascript,Php,Ajax,Bootstrap Modal,我已经建立了一个数据库。我还有一个函数(在JavaScript中)可以“捕获”按下按钮的元素的id,如下所示: Name of subject | Actions ----------------------------------------- Chemistry | Edit / Delete Algebra | Edit / Delete 因此,如果我按下“Delete”,一个javascript函数将获取该主题的id,并使用
Name of subject | Actions
-----------------------------------------
Chemistry | Edit / Delete
Algebra | Edit / Delete
因此,如果我按下“Delete”,一个javascript
函数将获取该主题的id,并使用AJAX
发送请求,方法如下:
function confirmationDeleteSubject(boton){
var materiaId = parseInt(boton.value);
console.log(materiaId);
$.ajax({
url: 'http://localhost/path/showSubject.php',
type: "POST",
data: {"materiaId": materiaId},
dataType: "html",
beforeSend: function() {
console.log("Processing...");
},
success: function(data) {
if( data == "OK") {
//location.href = "http://localhost/path/main.php";
return;
}
if( data == "ERROR") {
alert("error, please try again");
return;
}
alert("Server message: " + data);
}
});
}
然后有一个php
文件,用于获取特定id的数据,并尝试在模式中显示它:
<?php
include("conexionDatos.php");
// Inicialization
$materiaId = "";
// This receives the data from the JavaScript function
$materiaId = $_POST['materiaId'];
// Query to get the data for that id
$SQL = "SELECT m.id, m.name, m.description, m.hours, c.name AS carreer_name FROM subjects m JOIN carreers c ON (m.carreer_id = c.id) WHERE m.id = '$materiaId'";
$result = $CONN->query($SQL);
// This part "inserts" into the table in the modal
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()){
echo "<tr>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['description']}</td>";
echo "<td>{$row['hours']}</td>";
echo "<td>{$row['carreer_name']}</td>";
echo "</tr>";
}
} else {
echo "<tr><td>No data found<td></tr>";
}
$CONN->close();
?>
在该警报之后,会弹出一个模式,但该表为空,并且它读取的是未找到任何数据
它有一个警告,上面写着:
注意:第12行C:\bla\muestroMateria.php中未定义的索引:materialaid
我不完全理解为什么,因为数据会在警报中弹出,但这就像php文件没有收到id,因此modals读取“未找到数据”
编辑:即使我的问题给qith一个未定义的索引警告,对我来说,它比这更进一步,在AJAX代码和PHP文件之间的某个地方。我还是不知道它是什么。这行有问题。您的POST数组没有指定的密钥
$materiaId = $_POST['materiaId']
您应该确保发送了正确的数据(浏览器检查器/网络选项卡),并且还应避免出现前面提到的变量为null的情况
$materiaId = isset($_POST['materiaId']) ? $_POST['materiaId'] : '';
或
您还需要检查PHP脚本正在接收哪些数据(json变量,或发送变量的普通数组,或者出于某种原因什么都没有),您可以使用这些数据
echo变量导出($\u POST,true)
作为PHP脚本响应,
调试脚本接收的内容(以及格式)。这一行有问题。您的POST数组没有指定的密钥
$materiaId = $_POST['materiaId']
您应该确保发送了正确的数据(浏览器检查器/网络选项卡),并且还应避免出现前面提到的变量为null的情况
$materiaId = isset($_POST['materiaId']) ? $_POST['materiaId'] : '';
或
您还需要检查PHP脚本正在接收哪些数据(json变量,或发送变量的普通数组,或者出于某种原因什么都没有),您可以使用这些数据
echo变量导出($\u POST,true)
作为PHP脚本响应,
调试脚本接收的内容(以及格式)。检查materialId是否为空。@Sachin PATIL Hi!是的,我使用了var_dump();以查看其值,并返回NULL。我不明白为什么数据在警报中显示得很好(告诉我SELECT查询可以正常工作),但如果materialId不为null,它不会填充检查的模式:/可能重复。@Sachin PATIL Hi!是的,我使用了var_dump();以查看其值,并返回NULL。我不明白为什么数据在警报中显示得很好(告诉我SELECT查询工作正常),但它没有填充Hi的模式:/mable replicate!我明白了,我已经尝试过了,并一直返回未定义的索引或NULL(只有isset返回bool false)。我一直在查看它,php文件中的查询工作正常,而且javascript本身(使用警报显示变量的值)AJAX代码似乎也正常,所以我不知道,因为该值是“捕获”的,并且不为null,但php无法接收它:/I编辑了我的答案,通过另一个测试,您可以对debugHi进行测试!我明白了,我已经尝试过了,并一直返回未定义的索引或NULL(只有isset返回bool false)。我一直在查看它,php文件中的查询工作正常,而且javascript本身(使用警报显示变量的值)AJAX代码似乎也正常,所以我不知道,因为值是“捕获的”,并且不是空的,但php无法接收它:/I编辑了我的答案,您可以通过另一个测试进行调试