[英]PHP while loop array to JavaScript infinitely looping
為什么這會向我的JavaScript函數發送一個無限循環,而不是像其他while循環那樣僅發送單擊1次的結果?
這是2條代碼,第1條是有問題的代碼,它們再次循環n,並在很長一段時間后拋出NAN
, n
然后中斷...第二條代碼是從MySQL數據庫中獲得相同的while循環,並具有相同的onclick
事件和相同的變量檢索。相同的功能,但是第一個有問題的while循環只是無限循環,而不是發送1值...
第一個代碼...
echo "<div class='pagebuttonsdiv'>";
while($x < $pagesnum) {
$x++;
$xpage = $x*9;
echo "<div class='pagebuttons' onclick='pageclick({$xpage},{$display},{$maxresults},{$startfrom});'>
{$x}</div>";
if ($x>$display) {
echo"<br>"; };
if ($x >$pagesnum) {
$x=0; }
};
echo "</div>";
第二碼
while($row = mysqli_fetch_assoc($result)) {
<video id='$vidd' title='{$row['title']} {$row['locate']}' style='position:absolute; left:0px; top:18%; width:100%; height:60%; transform: scale(1.0,1.1);' preload='metadata' controls='controls'>
<source src='vid/{$row['videos']}.mp4' type='video/mp4'>
<source src='vid/{$row['videos']}.mp4' type='video/ogg'>
<source src='vid/{$row['videos']}.mp4' type='video/webm'>
</video >
<div id='vidicon' title='Video's' class='vidicon' onclick='controlshowvid($vidd , $pidd);' >
";
}
使用x尋找什么條件? X是否應等於頁數?
循環中發生的第一件事是x遞增。 當代碼到達上述if語句時,如果x大於pagenum,則if塊中的代碼會將x重置為0,然后返回循環的開頭。
也許沒有理由做出if陳述。
同樣,在這里的代碼中x似乎除了增加以外沒有被修改,應該達到最終退出循環的條件。
當您說NaN時,我相信JavaScript代碼中也存在問題。
<?php
echo"
<div class='pagebuttonsdiv'>
";
for ( $x =1 ; $x < $pagesnum ; $x++ ) {
if ($x > $pagesnum) {$x==$pagesnum;}
echo "<div class='pagebuttons' onclick='pageclick({$x},{$display}, {$maxresults} , {$startfrom});'>
{$x}</div>";
};
echo"
?>
<script>
function pageclick(pagex , display , maxresults , startfrom){
alert([pagex])
var startfrom=pagex*9
ERROR --->document.getElementById('startpoint').value = >removed ERROR(pageclick) (startfrom);<<<=
NOW --->document.getElementById('startpoint').value = (startfrom);
document.getElementById('pagechange').submit(); return false;
}
</script>
現在它是POST的唯一值,它之所以循環,是因為它無法POST。
您是否嘗試過intval($ pagenum),我很好奇所使用的數據類型是什么。
或者您可以嘗試在while循環頂部設置這兩個變量的值。 $ x = 0; $ pagenum = 9;
這就是為什么出現無限循環的原因:
echo "<div class='pagebuttonsdiv'>";
while($x < $pagesnum) { // x < pagesnum -> enters the lopp, so it get out of the loop on x >= pagesnum
$x++;
$xpage = $x*9;
echo "<div class='pagebuttons' onclick='pageclick({$xpage},{$display},{$maxresults},{$startfrom});'>
{$x}</div>";
if ($x>$display) {
echo"<br>"; };
if ($x >$pagesnum) {
$x=0; } // when it's supposed to get out the loop you put it 0 (zero) so unless pagesnum is zero or less it will loop forever
};
echo "</div>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.