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 :)