Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: On/Off formos mygtukas su mysql

Parašė Gytisz· 2014 Kov. 16 20:03:10
#1

Sveiki, tikiuosi supratot ką turėjau omenį iš temos pavadinimo. Pradėjau gilintis php/mysql, ir vis neisšeina padaryti on/off switch mygtuko.

Kodas kuri naudoju:

 
 
<?php
<form action='index.php' method='post' enctype='multipart/form-data'>
require_once "../maincore.php";
if (!iADMIN) { header("Location:../index.php"); exit; }
$result = dbquery("SELECT * FROM ".DB_PREFIX."on WHERE on='".$editon."' LIMIT 0,1");
echo "<table width='10%' class='tbl'>
<tr>
    <td>SWITCH ON/OFF?</td>
    <td><input type='checkbox' name='on' size='70' ";
    if ($data['on'] == 1) { echo "CHECKED"; } 
    echo "></td>
</tr>
<tr>
    <td colspan='2' align='center'><input type='submit' value='".$locale['ctbs011']."' class='button'>
</td>
</td>
</table></form>";
?>
 
 


Ir tada norint kad būtų atvaizduota rašau:


 
<?php
$result = dbquery("SELECT * FROM ".DB_PREFIX."on WHERE on='1' LIMIT 0,1");
$data = dbarray($result);
 
if ($data)
}
echo 'on';
{
else 
}
echo 'off';
{
?>
 

Parašė Wasiulis· 2014 Kov. 16 21:03:12
#2

Klaidų esi pridaręs.
Kodėl form funkcija neįdėta į echo ''; ?
on='".$editon."', užklausa yra o kintamojo $editon reikšmės kode tai nėra.

Parašė Gytisz· 2014 Kov. 16 22:03:58
#3

Editavau:

Kodas kuri naudoju:

 
 
<?php
require_once "../maincore.php";
include "edit.php";
if (!iADMIN) { header("Location:../index.php"); exit; }
$result = dbquery("SELECT * FROM ".DB_PREFIX."on WHERE on='".$editon."' LIMIT 0,1");
echo "<form action='index.php' method='post' enctype='multipart/form-data'><table width='10%' class='tbl'>
<tr>
    <td>SWITCH ON/OFF?</td>
    <td><input type='checkbox' name='on' size='70' ";
    if ($data['on'] == 1) { echo "CHECKED"; } 
    echo "></td>
</tr>
<tr>
    <td colspan='2' align='center'><input type='submit' value='".$locale['ctbs011']."' class='button'>
</td>
</td>
</table></form>";
?>
 
 


edit.php yra:


 
<?php
if (!iADMIN) { header("Location:../../../index.php"); exit; }
 
$editon = $_POST['on'];
 
if($on == 'on') { $naujas = 1; } else { $naujas = 0; }
 
$result = dbquery("UPDATE ".$db_prefix."pageidavimai SET `on` = '".$naujas."' LIMIT 1 ;"); }
 
else {
 
$result = dbquery("UPDATE ".$db_prefix."pageidavimai SET `on` = '".$naujas."' LIMIT 1 ;"); }
 
}
?>
 


Gali buti kad pievas pjaunu, nes tikrai nenuotuokiu :|

Redagavo Gytisz· 2014 Kov. 16 22:03:58

Parašė avice· 2014 Kov. 17 21:03:51
#4

Šiam reikalui gali tiesiog sukurt nauja irasa lenteleje `PREFIXAS_settings` , su tokiais duomenimis:
settings_name = pageidavimai_on
settings_value = 0
O kodas atrodytu mazdaug taip:

<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";
 
if (!iADMIN) { opentable('Klaida'); echo 'Klaida..'; closetable(); require_once THEMES."templates/footer.php"; exit; }
if(isset($_POST['status'])) {
	$status = ($_POST['status']=='Ijungti'?'1':'0');
    dbquery("UPDATE ".DB_SETTINGS." SET `settings_value`='".$status."' WHERE `settings_name`='pageidavimai_on'");
	$settings['pageidavimai_on'] = $status;
}
opentable('Pageidavimai');
echo "<form action='' method='post'>
<table width='150' class='tbl'>
<tr>
    <td>Pageidavimai:</td>
    <td align='left'><input type='submit' name='status' value='".($settings['pageidavimai_on'] == 1 ? 'Išjungti':'Ijungti')."'  /></td>
</tr>
 
</table></form>";
closetable();
require_once THEMES."templates/footer.php";
?>


O kai noresi kurnors kitur patikrint ar pageidavimai ijungti ar isjungti naudok tiesiog:

 
if($settings['pageidavimai_on']=='1') {
// pageidavimai ijungti
}else{
// pageidavimai isjungti
}
 

visa tai veiks visama php-fusion puslapyje.

Redagavo avice· 2014 Kov. 17 21:03:32

Parašė Gytisz· 2014 Kov. 18 02:03:42
#5

Dėkui avice už gerą išaiškinima. Tau thumbs up ir geriausias atsakymas! Tema galima rakyti :)