ИгорьВечный
Здравствуйте, помогите пожалуйста в решении проблемы, имеется вебформа, представляющая из себя игру, в которой после каждого нажатия кнопки появляется рандомная картинка и нужно сопоставить ее с правильным вариантом ответа, так вот, имеется checkbox, который отвечает за начало новой игры, тыкнули галочку, нажали смену картинки и все вернулось к изначальным настройкам, все работает, но никак не могу понять, как сделать вместо checkbox рабочую кнопку, типо, на нее нажал и все сбросилось, пробовал type reset, button, кнопка была, но ничего не работало. написано на html и php в одном файле все, проверяется на localhost, с помощью программы MAMP.
PHP:
<?php function clean($foldersCount){ //Reset all for ($k=0;$k<$foldersCount;$k++){ $_SESSION[‘arrcount_’.$k]=0; $_SESSION[‘arrcount1_’.$k]=0; } $_SESSION[‘newgame’]=‘newgame’; } //——————————- function printArr($picfolder1,$picnumber,$arr,$count){ echo ‘<br>’.$picfolder1.‘ ‘.$picnumber; for($i=0;$i<$count;$i++){ echo ‘<br>’.$arr[$i]; } } //———————————- function print1(){ echo ‘<br>’; for ($k=0;$k<4;$k++){ echo $_SESSION[‘arrcount_’.$k].‘—‘; } echo ‘<br>’; for ($k=0;$k<4;$k++){ echo $_SESSION[‘arrcount1_’.$k].‘—‘; } } //——————————- function correctArr($arr){//correcting the file folder (deleting unnecessary files) $ii=-1; if(!($arr[$i]==‘Thumbs.db’||$arr[$i]==‘.’||$arr[$i]==‘..’)){$ii++;$arr1[$ii]=$arr[$i];} //echo ‘<br>A’.$arr[$i]; } return $arr1; } //—————————— function showpic(&$str,&$imgnum,&$imgt,&$arr_classes){ //find file folders in theams folder //correct files by removing unnecessary $arr_classes=correctArr($folders); //number of folders //select folder name //Find a folder with pictures $pictype=$arr_classes[$picfolder]; $picfolder1=‘theams/’.$pictype; // Find array of folder files $picfolder1 //correcting files in a folder (deleting unnecessary files) $files=correctArr($files); //select picture number //printArr($picfolder1,$picnumber,$files,count($files)); //Find the file name of the picture by number $picnumber $picnumber1=$files[$picnumber]; //showing a picture $str=‘<div style=»background:#F9F9FA;margin:10px 0″><img src=»‘.$picfolder1.«https://php.ru/».$picnumber1.‘» alt=»» class=»pic» name=»‘.$pictype.‘»></div>’; //Write the transport type to the input $imgt=$pictype; //At the first start, reset the data if($_SESSION[‘newgame’]==‘newgame’){ //Pictures number $numofimg=$_GET[‘numofimg’]; //Number of displayed pictures per session $_SESSION[‘numofimg’]=$numofimg; //Reset data clean($foldersCount); //Reset new game flag $_SESSION[‘newgame’]=»; //Number of the picture shown $imgnum=1; return; } //Compare the current picture with the checkbox selection //If the answer is correct, then increase the corresponding counter by 1 for ($k=0;$k<$foldersCount;$k++){ } } // increase by 1 the counter showing the image of this type of transport for ($k=0;$k<$foldersCount;$k++){ } //calculate the percentage for ($k=0;$k<$foldersCount;$k++){ $arrpercent[$k]=0; } for ($k=0;$k<$foldersCount;$k++){ $arrcount[$k]=$_SESSION[‘arrcount_’.$k]; } for ($k=0;$k<$foldersCount;$k++){ $arrcount1[$k]=$_SESSION[‘arrcount1_’.$k]; } //print1(); //percentage for ($k=0;$k<$foldersCount;$k++){ if($arrcount[$k]==0)$arrpercent[$k]=0; else $arrpercent[$k]=$arrcount1[$k]*100/$arrcount[$k]; } //total images shown $transport=0; for ($k=0;$k<$foldersCount;$k++){ //$transport+=$_SESSION[‘arrcount_’.$k]; $transport+=$arrcount[$k]; } //total guessed pictures $transport1=0; for ($k=0;$k<$foldersCount;$k++){ $transport1+=$_SESSION[‘arrcount1_’.$k]; } //percentage if($transport==0)$transportpercent=0; else $transportpercent=$transport1*100/$transport; //round the percentage //count the number of images to display $numofimg=$_GET[‘numofimg’]; $_SESSION[‘numofimg’]=$numofimg; //saving the position of the checkbox of the number of displayed images if($_SESSION[‘numofimg’]===’10’){ $_SESSION[‘a1’]=‘ selected=»selected» ‘;$_SESSION[‘a2’]=»;$_SESSION[‘a3’]=»; } else if($_SESSION[‘numofimg’]===’20’){ $_SESSION[‘a1’]=»;$_SESSION[‘a2’]=‘ selected=»selected» ‘;$_SESSION[‘a3’]=»; } else if($_SESSION[‘numofimg’]===’50’){ $_SESSION[‘a1’]=»;$_SESSION[‘a2’]=»;$_SESSION[‘a3’]=‘ selected=»selected» ‘; } //if all pictures are shown then stop $imgnum=$transport+1; //clean($foldersCount); if($transport>=$numofimg){ clean($foldersCount); //create a statistics table $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>’; for ($k=0;$k<$foldersCount;$k++){ $str.=‘<tr><td>’.$arr_classes[$k].‘</td><td>’.$arrcount[$k].‘</td><td>’.$arrcount1[$k].‘</td><td>’.$arrpercent[$k].‘%</td></tr>’; } $str.=‘<tr><td>Total</td><td>’.$transport.‘</td><td>’.$transport1.‘</td><td>’.$transportpercent.‘%</td></tr></table></div>’; } 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>’; } //——————- Begin ———————— //if the New Game checkbox is checked, then open a new game if($_GET[‘ch’]==‘on’) clean($foldersCount); showpic($str,$imgnum,$imgt,$arr_classes); //fix the position of the checkbox of the number of displayed images $a1=»; $a2=$_SESSION[‘a2’];$a3=$_SESSION[‘a3’]; ?> <!Doctype html> <html lang=»ru»> <head> <meta charset=»utf-8″ /> <link rel=»stylesheet» href=»style.css» type=»text/css» > <link rel=»stylesheet» href=»cssboot/bootstrap.css» type=»text/css» ><!—-> <title>Game</title> </head> <body style=»width:400px;margin-left:auto;margin-right:auto» > <h1>Game «Guess the picture»</h1> <form class=»form1″ id=»pic» method=»GET» action=»index.php»> <?php echo ‘<div><label>Number of displayed images </label><select name=»numofimg» class=»btn btn-default» ><option ‘.$a1.‘>10</option><option ‘.$a2.‘ >20</option><option ‘.$a3.‘>50</option></select></div>’; echo ‘<div style=»margin-top:10px»><label>Picture number </label><input type=»text» id=»a1″ size=»4″ name=»picnumber» value=»‘.$imgnum.‘» ><input type=»hidden» id=»imgt» size=»4″ name=»imgt» value=»‘.$imgt.‘»></div>’; //Display picture //sleep(1); echo $str; $sel=»; } $sel=‘<div ><select name=»imgtype» class=»btn btn-default»>’.$sel.‘</select>’; echo $sel; ?> <!—<select name=»imgtype»><option>Plane</option><option>Train</option><option>Car</option></select>—> <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»> New Game</label></span></div> </form> </body> </html>
КУСКИ КОДА:
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»> New Game</label></span>//checkbox, выбрал галочку, нажал кнопку смены картинки, все сбросилось
don.bidon
го в тему «фриланс»
Drunkenmunky
Чекбокс замените кнопкой
HTML:
<input type=submit name=«ch» value=«clean»>А вот это:
Код (Text):
if($_GET[‘ch’]==’on’)//вот тут проблема, как это нужно поменять clean($foldersCount)//функция очисткиЗамените на это:
PHP:
{ clean($foldersCount); }
ИгорьВечный
Вы просто лучший, большое спасибо, все работает)))
roboformation