为什么这会向我的 JavaScript 函数发送一个无限循环,而不是像我的另一个 while 循环那样只发送 1 次点击的结果?
这是 2 个代码,第一个是有问题的,它再次循环 n 遍,并在这么长时间后抛出一个NAN
,n
然后中断......第二个相同的 while 循环来自 MySQL 数据库,具有相同的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);' >
";
}
<?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;
你用x寻找的条件是什么?X 不应该等于页码吗?
循环中发生的第一件事是,x 递增。当代码到达提到的 if 语句时,如果 x 大于 pagenum,则 if 块中的代码将 x 重置为 0,然后返回到循环的开始。
也许没有理由说if。
同样,使用此处的代码,x 除了增量之外似乎没有被修改,并且最终应该达到退出循环的条件。
当你说 NaN 时,我相信 JavaScript 代码也有问题。
这就是为什么你会得到一个无穷循环:
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>";