非常感谢你们的帮助!我已经开始弄明白我哪里出错了。愚蠢的我是将数据作为数组发送,而不是作为元素ID的单个字符串发送。
我过去几天在Stack Overflow&其他消息来源试图找到这个问题的答案。 SO在这个问题上有一个TON,但没有一个解决方案对我有用。我确信这是非常明显的事情。
为了便于阅读,我已经排除了很多代码。极简主义。我正在研究的项目应该打开一个模态窗口&从数据库加载内容。
我的问题是PHP不会在我的生命中获取变量。除了这个变量之外,其他所有东西都在工作。我的代码拉出div id并在php文件中匹配它。或者它应该是。当我尝试回显变量或$ _POST时,没有任何结果。我也尝试过使用isset进行测试 - 它总是出现负面影响。
我尝试过GET,POST - 这些似乎都不适合我。
任何想法都将不胜感激。
<div id="despair" class="cartoon" onclick="openEp(this.id)">
<p>content here</p>
</div>
<div id="friday" class="cartoon" onclick="openEp(this.id)">
<p>different content here</p>
</div>
<script>
function openEp(clikId) {
episode_name = clikId;
$.ajax({
type: 'POST',
url: 'cartoons.php',
data: ({episode_name: episode_name}),
success: function(data) {
console.log('sent ' + episode_name);
}
});
}
</script>
和我的cartoons.php文件
<?php include 'connect.php';
$conn = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$episode_name = $_POST["episode_name"];
echo $_POST['episode_name'];
?>
答案 0 :(得分:4)
这是你的成功功能:
success: function(data) { console.log('sent ' + episode_name); }
您忽略了data
。
如果要输出响应,则需要编写代码来执行此操作,例如:
success: function(data) {
console.log(data);
}
答案 1 :(得分:-2)
试试这个。我得到了回应。 html文件
<div id="despair" class="cartoon" onclick="openEp(this.id)">
<p>content here</p>
</div>
<div id="friday" class="cartoon" onclick="openEp(this.id)">
<p>different content here</p>
</div>
function openEp(clikId) {
episode_name = clikId;
$.ajax({
type: 'POST',
url: 'cartoons.php',
data: ({episode_name: episode_name}),
success: function(data) {
console.log('sent ' + episode_name);
}
});
}
<强> connect.php 强>
<?php
error_reporting(E_ALL);
const DB_HOST = "localhost";
const DB_USERNAME = 'root';
const DB_PASSWORD = '';
const DB_DATABASE = '#dbname';
<强> cartoons.php 强>
<?php
include 'connect.php';
$conn = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// Check connection
if (mysqli_connect_errno()) {
// echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
// echo "connected";
}
$episode_name = $_POST["episode_name"];
echo $_POST['episode_name'];
答案 2 :(得分:-2)
好的,尝试这种方式也许这就是我使用Ajax的方式:
<div id="despair" class="cartoon" onclick="openEp(this.id)">
<p>content here</p>
</div>
<div id="friday" class="cartoon" onclick="openEp(this.id)">
<p>different content here</p>
</div>
<script>
function openEp(clikId) {
$.ajax({
type: 'POST',
url: 'cartoons.php',
data: {episode_name: clikId}, // I did some change
dataType : "JSON", // I add this
// Now your success with some modification
success: function(response) {
console.log(response.data)
}
});
}
</script>
你的PHP:
<?php include 'connect.php';
$conn = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// You create an array you will use as result
$result = array();
// I add your data in the result array, the same way you can create $result['message'] and send back a success message or what you want
$result['data'] = $_POST["episode_name"];
// You send your array in JSON format as you wrote in your Ajax call
echo json_encode($result);
?>
是否使用JSON格式?