【发布时间】:2019-04-10 07:57:20
【问题描述】:
我遇到了一个我无法弄清楚的问题。我创建了一个简单的按钮,它使用 AJAX 将数据发送到 php 文件。我已经定义了变量,并且在单击按钮时在控制台中显示正确,但是我的 PHP 文件没有读取我正在设置的变量。我的 php 文件中的 else 语句正在触发。
有谁知道为什么没有在 php 文件中设置变量?
HTML
<button class="catalogDownload downloadButton" name="Profile Catalog" id="profileCatalogPDFButton" data-catalog-now="Profile Popular Button" data-catalog-view-name="Profile Catalog">Download Now</button>
AJAX
//Download Now AJAX
var catalog_name = '';
var button_triggered = '';
$('.downloadButton').on('click', function (event) {
catalog_name = $(this).attr('name');
button_triggered = $(this).data('catalog-now');
console.log(catalog_name);
$.ajax({
url: 'urlhere.php',
type: 'POST',
data: {
'catalog_name': catalog_name,
'button_triggered': button_triggered
},
success: function (data) {
//console.log(data);
},
error: function(xhr, textStatus, errorThrown) {
alert(textStatus + "|" + errorThrown);
},
cache: false
});
});
PHP 文件
ini_set('display_errors', 1);
error_reporting(E_ALL);
//$catalog_name = $_POST['catalog_name'];
if(isset($_POST['catalog_name'])){
$catalog_name = $_POST['catalog_name'];
} else {
echo 'Catalog Name is not reading';
}
【问题讨论】:
-
浏览器网络控制台中有什么?请求是否从浏览器发送到服务器?
-
@Paul 它来自 contentType: false
-
我会将其作为答案发布,以便您接受并关闭问题好吗?
-
@Paul 供将来参考:this question 提供了详细说明如何帮助在 Chrome 中调试请求的答案。其他浏览器也内置了类似的调试工具。
-
顺便说一句,您可以阅读此内容,但使用来自
echo file_get_contents('php://input')的原始阅读,您可以尝试用于教育目的,这也是您应该阅读 json 的方式:)