Javascript PHP没有捕获AJAX变量

Javascript PHP没有捕获AJAX变量,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,非常感谢大家的帮助!我已经开始明白我哪里出了错。愚蠢的我将数据作为数组而不是元素ID的单个字符串发送。 在过去的几天里,我一直在研究堆栈溢出和其他来源,试图找到这个问题的答案。在这个问题上我有很多想法,但没有一个解决方案对我有效。我相信这是非常明显的 为了可读性和极简主义,我排除了很多代码。我正在处理的项目应该是打开一个模式窗口并从数据库加载内容 我的问题是PHP在我的一生中都不会选择这个变量。从字面上看,除了这个变量外,其他一切都正常工作。我的代码提取div id并在php文件中匹配它。或者应

非常感谢大家的帮助!我已经开始明白我哪里出了错。愚蠢的我将数据作为数组而不是元素ID的单个字符串发送。

在过去的几天里,我一直在研究堆栈溢出和其他来源,试图找到这个问题的答案。在这个问题上我有很多想法,但没有一个解决方案对我有效。我相信这是非常明显的

为了可读性和极简主义,我排除了很多代码。我正在处理的项目应该是打开一个模式窗口并从数据库加载内容

我的问题是PHP在我的一生中都不会选择这个变量。从字面上看,除了这个变量外,其他一切都正常工作。我的代码提取div id并在php文件中匹配它。或者应该是这样。当我尝试回显变量或$\u 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>

满足于此

这里有不同的内容

函数openEp(clikId){ 插曲名称=clikId; $.ajax({ 键入:“POST”, url:'cartons.php', 数据:({插曲名称:插曲名称}), 成功:功能(数据){ console.log('sent'+插曲名称); } }); }
还有我的cartons.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'];

?>

这是您的成功功能:

您正在忽略
数据

如果要输出响应,则需要编写相应的代码,例如:

success: function(data) {
  console.log(data);
}

试试这个。我得到了回应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);
        }
    });
}

满足于此

这里有不同的内容

函数openEp(clikId){ 插曲名称=clikId; $.ajax({ 键入:“POST”, url:'cartons.php', 数据:({插曲名称:插曲名称}), 成功:功能(数据){ console.log('sent'+插曲名称); } }); }
connect.php

<?php
error_reporting(E_ALL);
const DB_HOST = "localhost";
const DB_USERNAME = 'root'; 
const DB_PASSWORD = '';
const DB_DATABASE = '#dbname';
<?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'];

好的,试试这个方法也许这就是我使用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>

满足于此

这里有不同的内容

函数openEp(clikId){ $.ajax({ 键入:“POST”, url:'cartons.php', 数据:{插曲名称:clikId},//我做了一些改变 数据类型:“JSON”,//我添加了这个 //现在,您的成功与一些修改 成功:功能(响应){ console.log(response.data) } }); }
您的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格式吗?

尝试使用
数据:{section\u name:section\u name},
而不使用()@HamzaAbdaoui-为什么会有不同?使用浏览器的“网络”选项卡,您应该调试问题是在JS还是PHP部分,而我怀疑是第一个问题option@deceze-我们可以看到代码。jQuery-ajax,当传递这样一个简单的对象时,将对其进行编码。重复@Nico所说的:打开浏览器的开发工具的网络检查器,查看实际的HTTP请求和响应。这是接近问题的最直接的方法。谢谢!通过输出我的数据,我意识到我发送的不是我想要的东西。但是,我的PHP文件仍然说$\u POST是空的。我的PHP文件是否也有问题?具体取决于您发布的内容“尝试”什么?你们改变了什么?你们在当地面临问题吗?检查数据库连接?在connect.php顶部添加错误报告(E_ALL)。然后你会看到警告和注意错误,为什么人们拒绝投票,却没有解释原因?
<?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);

?>