使用 HTML5 pushstate 请求 ajax 时未定义的索引通知
Undefined index notice while requesting ajax with HTML5 pushstate
也许这个脚本已经过时了,但是我想知道如何解决这个问题。当页面请求 ajax 调用时,我收到 Notice: Undefined index:
notice/error。一切正常,只是这个 notice/error 困扰着我。也许我问错了,但如何解决这个问题?
PHP
<?php
if($_GET['type']!='ajax'){
include 'header.php';
echo "<div id='result-content'>";
}
?>
content goes here
<?php
if($_GET['type']!='ajax'){
echo "</div>";
include 'footer.php';
}
?>
JS
$.thisproblem = $.thisproblem || {};
$.thisproblem.loadContent = function () {
$('.ajax-loader').show();
$.ajax({
url: pageUrl + '?type=ajax',
success: function (data) {
$('#result-content').html(data);
$('.ajax-loader').hide();
}
});
if (pageUrl != window.location) {
window.history.pushState({path: pageUrl}, '', pageUrl);
}
}
$("a").on('click', function (e) {
pageUrl = $(this).attr('href');
$.thisproblem.loadContent();
e.preventDefault();
});
抱歉英语不好,感谢您的回答。
由于 ?type
在您的 $.ajax()
url 中只有 set/used,您需要在尝试之前使用 !isset()
检查它是否已设置检查它的值
<?php
if( !isset($_GET['type']) || $_GET['type']!='ajax'){
include 'header.php';
echo "<div id='result-content'>";
}
?>
content goes here
<?php
if( !isset($_GET['type']) || $_GET['type']!='ajax'){
echo "</div>";
include 'footer.php';
}
?>
注意当未设置索引而您正在尝试使用它时,会出现未定义的索引。
例如: $_GET['type'] 将不会在您的情况下设置。所以首先你需要检查它是否已设置。所以你可以做
If(isset ($_GET['type']) || $_GET['type']!='yourvalue'){
也许这个脚本已经过时了,但是我想知道如何解决这个问题。当页面请求 ajax 调用时,我收到 Notice: Undefined index:
notice/error。一切正常,只是这个 notice/error 困扰着我。也许我问错了,但如何解决这个问题?
PHP
<?php
if($_GET['type']!='ajax'){
include 'header.php';
echo "<div id='result-content'>";
}
?>
content goes here
<?php
if($_GET['type']!='ajax'){
echo "</div>";
include 'footer.php';
}
?>
JS
$.thisproblem = $.thisproblem || {};
$.thisproblem.loadContent = function () {
$('.ajax-loader').show();
$.ajax({
url: pageUrl + '?type=ajax',
success: function (data) {
$('#result-content').html(data);
$('.ajax-loader').hide();
}
});
if (pageUrl != window.location) {
window.history.pushState({path: pageUrl}, '', pageUrl);
}
}
$("a").on('click', function (e) {
pageUrl = $(this).attr('href');
$.thisproblem.loadContent();
e.preventDefault();
});
抱歉英语不好,感谢您的回答。
由于 ?type
在您的 $.ajax()
url 中只有 set/used,您需要在尝试之前使用 !isset()
检查它是否已设置检查它的值
<?php
if( !isset($_GET['type']) || $_GET['type']!='ajax'){
include 'header.php';
echo "<div id='result-content'>";
}
?>
content goes here
<?php
if( !isset($_GET['type']) || $_GET['type']!='ajax'){
echo "</div>";
include 'footer.php';
}
?>
注意当未设置索引而您正在尝试使用它时,会出现未定义的索引。
例如: $_GET['type'] 将不会在您的情况下设置。所以首先你需要检查它是否已设置。所以你可以做
If(isset ($_GET['type']) || $_GET['type']!='yourvalue'){