Пожалуйста, помогите исправить код, проблема с функцией clean и checkbox

ИгорьВечный

Здравствуйте, помогите пожалуйста в решении проблемы, имеется вебформа, представляющая из себя игру, в которой после каждого нажатия кнопки появляется рандомная картинка и нужно сопоставить ее с правильным вариантом ответа, так вот, имеется checkbox, который отвечает за начало новой игры, тыкнули галочку, нажали смену картинки и все вернулось к изначальным настройкам, все работает, но никак не могу понять, как сделать вместо checkbox рабочую кнопку, типо, на нее нажал и все сбросилось, пробовал type reset, button, кнопка была, но ничего не работало. написано на html и php в одном файле все, проверяется на localhost, с помощью программы MAMP.

PHP:
  1. <?php
  2.  
  3. ini_set(‘display_errors’,‘Off’);
  4.  
  5. function clean($foldersCount){
  6.     //Reset all
  7.     for ($k=0;$k<$foldersCount;$k++){
  8.         $_SESSION[‘arrcount_’.$k]=0;
  9.         $_SESSION[‘arrcount1_’.$k]=0;
  10.     }
  11.  
  12.     $_SESSION[‘newgame’]=‘newgame’;
  13. }
  14. //——————————-
  15. function printArr($picfolder1,$picnumber,$arr,$count){
  16.     echo ‘<br>’.$picfolder1.‘  ‘.$picnumber;
  17.     for($i=0;$i<$count;$i++){
  18.         echo ‘<br>’.$arr[$i];
  19.     }
  20. }
  21. //———————————-
  22. function print1(){
  23.     echo ‘<br>’;
  24.     for ($k=0;$k<4;$k++){
  25.         echo $_SESSION[‘arrcount_’.$k].‘—‘;
  26.     }
  27.     echo ‘<br>’;
  28.     for ($k=0;$k<4;$k++){
  29.         echo $_SESSION[‘arrcount1_’.$k].‘—‘;
  30.     }
  31.  
  32. }
  33. //——————————-
  34. function correctArr($arr){//correcting the file folder (deleting unnecessary files)
  35.     $arr1=Array();
  36.     $ii=-1;
  37.     for ($i=0;$i<count($arr);$i++){
  38.         if(!($arr[$i]==‘Thumbs.db’||$arr[$i]==‘.’||$arr[$i]==‘..’)){$ii++;$arr1[$ii]=$arr[$i];}
  39.         //echo ‘<br>A’.$arr[$i];
  40.     }
  41.     return $arr1;
  42. }
  43.  
  44. //——————————
  45. function showpic(&$str,&$imgnum,&$imgt,&$arr_classes){
  46.     //find file folders in theams folder
  47.     $folders=scandir(‘theams’);
  48.     //correct files by removing unnecessary
  49.     $arr_classes=correctArr($folders);
  50. //number of folders  
  51.     $foldersCount=count($arr_classes);
  52.  
  53. //select folder name  
  54.     $picfolder=rand(0,$foldersCount1);
  55.  
  56. //Find a folder with pictures
  57.     $pictype=$arr_classes[$picfolder];
  58.     $picfolder1=‘theams/’.$pictype;
  59.  
  60.  
  61. // Find array of folder files $picfolder1
  62.     $files=scandir($picfolder1, 1);
  63.     //correcting files in a folder (deleting unnecessary files)
  64.     $files=correctArr($files);
  65.  
  66.     //select picture number
  67.     $picnumber=rand(0,count($files)1);
  68.     //printArr($picfolder1,$picnumber,$files,count($files));
  69.  
  70. //Find the file name of the picture by number    $picnumber
  71.     $picnumber1=$files[$picnumber];
  72.  
  73. //showing a picture      
  74.     $str=‘<div style=»background:#F9F9FA;margin:10px 0″><img src=»‘.$picfolder1.«https://php.ru/».$picnumber1.‘» alt=»» class=»pic» name=»‘.$pictype.‘»></div>’;
  75.  
  76.     //Write the transport type to the input
  77.     $imgt=$pictype;
  78.  
  79.     //At the first start, reset the data
  80.     if($_SESSION[‘newgame’]==‘newgame’){
  81.      
  82.         //Pictures number
  83.         $numofimg=$_GET[‘numofimg’];
  84.      
  85.         //Number of displayed pictures per session
  86.         $_SESSION[‘numofimg’]=$numofimg;
  87.         //Reset data
  88.         clean($foldersCount);
  89.         //Reset new game flag
  90.         $_SESSION[‘newgame’]=»;
  91.         //Number of the picture shown
  92.         $imgnum=1;
  93.      
  94.         return;
  95.     }
  96.  
  97.  
  98.     //Compare the current picture with the checkbox selection
  99.     if(strtolower($_GET[‘imgtype’])===strtolower($_GET[‘imgt’])){
  100.         //If the answer is correct, then increase the corresponding counter by 1
  101.      
  102.         for ($k=0;$k<$foldersCount;$k++){
  103.             if(strtolower($_GET[‘imgtype’])===$arr_classes[$k])$_SESSION[‘arrcount1_’.$k]++;
  104.         }
  105.      
  106.     }
  107.  
  108.     //  increase by 1 the counter showing the image of this type of transport
  109.     for ($k=0;$k<$foldersCount;$k++){
  110.             if(strtolower($_GET[‘imgt’])===$arr_classes[$k])$_SESSION[‘arrcount_’.$k]++;
  111.     }
  112.      
  113.     //calculate the percentage
  114.      
  115.     $arrpercent=Array();
  116.     for ($k=0;$k<$foldersCount;$k++){
  117.         $arrpercent[$k]=0;
  118.     }
  119.  
  120.     $arrcount=Array();
  121.     for ($k=0;$k<$foldersCount;$k++){
  122.         $arrcount[$k]=$_SESSION[‘arrcount_’.$k];
  123.     }
  124.     $arrcount1=Array();
  125.     for ($k=0;$k<$foldersCount;$k++){
  126.         $arrcount1[$k]=$_SESSION[‘arrcount1_’.$k];
  127.      
  128.     }
  129.     //print1();
  130.  
  131.  
  132.     //percentage
  133.     for ($k=0;$k<$foldersCount;$k++){
  134.         if($arrcount[$k]==0)$arrpercent[$k]=0;
  135.         else $arrpercent[$k]=$arrcount1[$k]*100/$arrcount[$k];
  136.         $arrpercent[$k]=round($arrpercent[$k]);
  137.     }
  138.  
  139.      
  140.     //total images shown
  141.     $transport=0;
  142.     for ($k=0;$k<$foldersCount;$k++){
  143.         //$transport+=$_SESSION[‘arrcount_’.$k];
  144.         $transport+=$arrcount[$k];
  145.     }
  146.  
  147.     //total guessed pictures
  148.     $transport1=0;
  149.     for ($k=0;$k<$foldersCount;$k++){
  150.         $transport1+=$_SESSION[‘arrcount1_’.$k];
  151.     }
  152.  
  153.      
  154.     //percentage  
  155.     if($transport==0)$transportpercent=0;
  156.     else $transportpercent=$transport1*100/$transport;
  157.     //round the percentage
  158.     $transportpercent=round($transportpercent);
  159.  
  160.  
  161.     //count the number of images to display
  162.     $numofimg=$_GET[‘numofimg’];  
  163.     $_SESSION[‘numofimg’]=$numofimg;
  164.  
  165.     //saving the position of the checkbox of the number of displayed images
  166.     if($_SESSION[‘numofimg’]===’10’){
  167.  
  168.         $_SESSION[‘a1’]=‘ selected=»selected» ‘;$_SESSION[‘a2’]=»;$_SESSION[‘a3’]=»;
  169.     }
  170.     else if($_SESSION[‘numofimg’]===’20’){
  171.         $_SESSION[‘a1’]=»;$_SESSION[‘a2’]=‘ selected=»selected» ‘;$_SESSION[‘a3’]=»;
  172.     }
  173.     else if($_SESSION[‘numofimg’]===’50’){
  174.         $_SESSION[‘a1’]=»;$_SESSION[‘a2’]=»;$_SESSION[‘a3’]=‘ selected=»selected» ‘;
  175.     }
  176.  
  177.     //if all pictures are shown then stop  
  178.     $imgnum=$transport+1;
  179.  
  180.     //clean($foldersCount);
  181.     if($transport>=$numofimg){
  182.             clean($foldersCount);
  183.         //create a statistics table  
  184.     $str=‘<div style=»width:400px;height:300px;border:1px solid gray;margin:10px 0;background:#f9f9fa»><div style=»font-size:18px;font-weight:bold;margin:10px 0 10px 10px;»>Result</div><table border=»1″ ><tr><th>Transport</th><th>Shown</th><th>Correct</th><th>Correct %</th></tr>’;
  185.     for ($k=0;$k<$foldersCount;$k++){
  186.         $str.=‘<tr><td>’.$arr_classes[$k].‘</td><td>’.$arrcount[$k].‘</td><td>’.$arrcount1[$k].‘</td><td>’.$arrpercent[$k].‘%</td></tr>’;
  187.     }
  188.     $str.=‘<tr><td>Total</td><td>’.$transport.‘</td><td>’.$transport1.‘</td><td>’.$transportpercent.‘%</td></tr></table></div>’;
  189.          
  190.     }
  191.  
  192.     if($transport==0)$str=‘<div style=»width:400px;height:300px;border:1px solid gray;margin:10px 0;background:#f9f9fa»><div class=»p1″><p>Press the button «Guess the pictire»</p></div><div class=»p2»> <p>And Begin  NEW GAME</p></div></div>’;
  193.  
  194. }
  195.  
  196. //——————- Begin ————————
  197.  
  198. //if the New Game checkbox is checked, then open a new game
  199.  
  200. if($_GET[‘ch’]==‘on’)
  201.     clean($foldersCount);
  202.  
  203.     showpic($str,$imgnum,$imgt,$arr_classes);
  204.  
  205.     //fix the position of the checkbox of the number of displayed images
  206. $a1=»;    $a2=$_SESSION[‘a2’];$a3=$_SESSION[‘a3’];
  207.  
  208. ?>
  209.  
  210.  
  211.  
  212. <!Doctype html>
  213.  
  214. <html lang=»ru»>
  215.  
  216. <head>
  217.     <meta charset=»utf-8″ />
  218.  
  219.     <link rel=»stylesheet» href=»style.css» type=»text/css» >
  220.     <link rel=»stylesheet» href=»cssboot/bootstrap.css» type=»text/css» ><!—->
  221.  
  222.     <title>Game</title>
  223.  
  224. </head>
  225.  
  226. <body style=»width:400px;margin-left:auto;margin-right:auto»  >
  227.  
  228. <h1>Game «Guess the picture»</h1>
  229.  
  230. <form  class=»form1″ id=»pic» method=»GET» action=»index.php»>
  231. <?php
  232. echo ‘<div><label>Number of displayed images &nbsp;&nbsp;</label><select name=»numofimg» class=»btn btn-default» ><option ‘.$a1.‘>10</option><option ‘.$a2.‘ >20</option><option ‘.$a3.‘>50</option></select></div>’;
  233. echo ‘<div style=»margin-top:10px»><label>Picture number &nbsp;</label><input type=»text» id=»a1″ size=»4″ name=»picnumber» value=»‘.$imgnum.‘» ><input type=»hidden» id=»imgt» size=»4″ name=»imgt» value=»‘.$imgt.‘»></div>’;
  234.  
  235. //Display picture
  236.  
  237. //sleep(1);
  238.     echo $str;
  239.  
  240.     $sel=»;
  241.  
  242.     for ($i=0;$i<count($arr_classes);$i++){
  243.         $sel.=‘<option class=»btn-default»>’.ucfirst($arr_classes[$i]).‘</option>’;
  244.     }
  245.     $sel=‘<div ><select name=»imgtype» class=»btn btn-default»>’.$sel.‘</select>’;
  246.     echo $sel;
  247. ?>  
  248. <!—<select name=»imgtype»><option>Plane</option><option>Train</option><option>Car</option></select>—>
  249.  
  250. <input type=»submit» value=»Guess the picture» class=»btn btn-primary» ><span id=»newGame»><label class=»label label-primary» id=»NG»><input id=»chch» type=»checkbox» name=»ch» class=»form-check-input»>&nbsp;New Game</label></span></div>
  251.  
  252.  
  253. </form>
  254.  
  255. </body>
  256. </html>

фваыва.png

КУСКИ КОДА:
function clean($foldersCount){
//Reset all
for ($k=0;$k<$foldersCount;$k++){
$_SESSION[‘arrcount_’.$k]=0;
$_SESSION[‘arrcount1_’.$k]=0;
}

$_SESSION[‘newgame’]=’newgame’;
}//функция очистки

if($_GET[‘ch’]==’on’)//вот тут проблема, как это нужно поменять
clean($foldersCount)//функция очистки

<input type=»submit» value=»Guess the picture» class=»btn btn-primary» >//кнопка смены картинок

<span id=»newGame»><label class=»label label-primary» id=»NG»><input id=»chch» type=»checkbox» name=»ch» class=»form-check-input»>&nbsp;New Game</label></span>//checkbox, выбрал галочку, нажал кнопку смены картинки, все сбросилось​

 

don.bidon

го в тему «фриланс»

 

Drunkenmunky

Чекбокс замените кнопкой

HTML:
  1. <input type=submit name=«ch» value=«clean»>

А вот это:

Код (Text):
  1. if($_GET[‘ch’]==’on’)//вот тут проблема, как это нужно поменять
  2. clean($foldersCount)//функция очистки

Замените на это:

PHP:
  1. if(isset($_GET[‘ch’]))
  2. {
  3. clean($foldersCount);
  4. }
 

ИгорьВечный

Вы просто лучший, большое спасибо, все работает)))

 

roboformation

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *