为什么这会向我的JavaScript函数发送一个无限循环,而不是像我的其他while循环那样只发送一个单击的结果?
以下是2个代码,第1个是有问题的,在n上再次循环,并在这么长时间后抛出NAN
,n
然后中断...第二个相同的while循环来自具有相同onclick
事件的MySQL数据库同样检索变量和相同的函数,但第一个有问题的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);' >
";
}
答案 0 :(得分:0)
您正在寻找x的条件是什么? X不应该等于页面数?
在循环中发生的第一件事,x递增。 当代码到达上面提到的if语句时,如果x大于pagenum,则if块中的代码将x重置为0,然后它继续返回循环的开始。
也许没有理由说if语句。
同样使用此处的代码x似乎不会在增量之外进行修改,并且应该达到最终退出循环的条件。
当你说NaN时,我相信JavaScript代码也有问题。
答案 1 :(得分:0)
<?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了单个值,原因是循环,是因为它无法发布。
答案 2 :(得分:0)
你有没有尝试intval($ pagenum),我很好奇所用的数据类型是什么。
或者您可以尝试在while循环之上设置这两个变量的值。 $ X = 0; $页次= 9;
答案 3 :(得分:0)
这就是你获得无限循环的原因:
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>";