У меня есть страница index.php
. Функция этой страницы - бесконечная прокрутка с использованием AJAX, PHP и MySQL. Верхняя часть содержит коды PHP MySQL, а внизу - JavaScript.
Я хочу напечатать общее количество строк в центре страницы, но каждый раз, когда я пытаюсь, он показывает ошибку «неопределенной переменной».
Я думаю, что при загрузке страницы общее число переменных пытается сначала печатать, а затем выполняется запрос PHP, поэтому он показывает «неопределенная переменная», но когда я помещаю общее число переменных внутри кодировок PHP, существует без проблем.
Как я могу предотвратить это?Как исправить неопределенную переменную в php?
Моего index.php
является
//my php part here
<?php
if(isset($_POST["anotherID"])){
require_once("config.php");
$limit = (intval($_POST['limit']) != 0) ? $_POST['limit'] : 10;
$offset = (intval($_POST['offset']) != 0) ? $_POST['offset'] : 0;
$id = $_POST["anotherID"];
$query = $id;
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM x where title like '%xx%' ORDER BY rand() LIMIT $limit OFFSET $offset";
try {
$stmt = $DB->prepare($sql);
$stmt->execute();
$results = $stmt->fetchAll();
$row_object = $DB->prepare("Select Found_Rows() as rowcount");
$row_object->execute();
$roww_object =$row_object->fetchobject();
$actual_row_count = $roww_object->rowcount;
} catch (Exception $ex) {
echo $ex->getMessage();
}
if (count($results) > 0) {
foreach ($results as $res) {
echo'something';
}
}
$count = $actual_row_count;
exit;
}
?>
//my html part here
<html>
//some html codes
<?php echo $count; ?>
//some html codes here
//my java scripts here
<script type="text/javascript">
var busy = false;
var limit = 6
var offset = 0;
var anotherID = 5
function displayRecords(lim, off) {
$.ajax({
type: "POST",
async: false,
data: "limit=" + lim + "&offset="+ off+"&anotherID="+anotherID,
cache: false,
beforeSend: function() {
$("#loader_message").html("").hide();
$('#loader_image').show();
},
success: function(html) {
$("#results").append(html);
$('#loader_image').hide();
if (html == "") {
$("#loader_message").html('<button class="btn btn-default btn-block" type="button">No more records.</button>').show()
} else {
$("#loader_message").html('<button class="btn btn-default btn-block" type="button"><div id="loader_image"><img src="loader.gif" alt="" width="24" height="24">Loading please wait...</button>').show();
}
window.busy = false;
}
});
}
$(document).ready(function() {
// start to load the first set of data
if (busy == false) {
busy = true;
// start to load the first set of data
displayRecords(limit, offset);
}
$(window).scroll(function() {
// make sure u give the container id of the data to be loaded in.
if ($(window).scrollTop() + $(window).height() > $("#results").height() && !busy) {
busy = true;
offset = limit + offset;
// this is optional just to delay the loading of data
setTimeout(function() { displayRecords(limit, offset); }, 500);
// you can remove the above code and can use directly this function
// displayRecords(limit, offset);
}
});
});
</script>
//some html codes her
</html>
Я знаю, когда страница загружается, то HTML часть первой загрузки, а затем мой JQuery стимулирует PHP часть, а затем появляются мои результаты.
Как я могу это исправить?
Почему $count
всегда показывает «неопределенная переменная»?
Заранее спасибо.
Если ', если (Исеть ($ _ POST [ "anotherID"])) {' ложно, $ граф будет неопределенным. Если какой-либо оператор в блоке 'try {' генерирует исключение, $ count будет неопределенным, потому что $ actual_row_count будет неопределенным. Попытайтесь выяснить, где это происходит. – raduation
, но мне нужно значение $ count – ahgh
@ahgh Но точное значение чего? Вы не получаете удостоверение личности или что-то еще, и что вы хотите точно подсчитать? –