Jump to content
soueu

Obter o valor de um Radio Button

Recommended Posts

soueu

Boa Noite,

Estou com um problema estúpido, mas não estou a conseguir ver o que estou a fazer mal...

Não consigo obter o POST do radio button "Fregistos" para o conseguir substituir o seu valor no do ficheiro "config.php".

Config.php:

<?php
DEFINE('Registo_ativado', True);
?>

radiobutton.php

<?php require_once('config.php'); ?>

<form method="post">
<p><b>Registos:</b></p>
<br><input type="radio" name="Fregistos" value="ativados">Ativados<br><br><input type="radio" name="Fregistos" value="desativados">Desativados
<input type="submit" name="Fconfig" class="submit" value="Submeter" />
</form>

<?php
if(isset($_POST['Fconfig'])) {
$file = 'config.php';
$configs = file_get_contents($file);

//if (!empty($_POST["Fregistos"])) {
	if($_POST['Fregistos'] == 'ativados') {
		$configs = str_replace(Registo_ativado, True, $configs);
	} elseif($_POST['Fregistos'] == 'desativados') {
		$configs = str_replace(Registo_ativado, False, $configs);
	}
//}

file_put_contents($file, $configs);
}
?>

Obrigado desde já!

Edited by soueu

Share this post


Link to post
Share on other sites
soueu

Apenas tenho este ficheiro de configuração "config.php" que queria modificar apartir de um formulário de um Painel de Administração que estou desenvolvendo.

A parte de substituir no ficheiro sei que está certa pois já a testei nos textboxes, agora só o checkbox que não está funcionando perfeitamente.

Eu já tinha esta parte desenvolvida, mas por estupidez minha perdi o meu projeto, então estou desenvolvendo outravez :(

Share this post


Link to post
Share on other sites
Rui Carlos

Vê se este post ajuda.

Pelo que percebi, também podes ter o valor on em vez de activados, pelo que convém usar names diferentes, para depois poderes usar o isset($_POST['...']) para determinar se uma certa opção foi seleccionada.

Share this post


Link to post
Share on other sites
soueu

Obrigado pela sugestão.

Peço desculpa, o problema não é sobre checkbox... mas sim Radio Buttons... Estava pensando numa coisa, escrevendo outra :(

Tópico Atualizado!

Share this post


Link to post
Share on other sites
soueu

o código está correto, já experimentaste fazer um print_r do $_POST antes do if? Qual é o resultado?

Para falar a verdade sim, mas como cortei esta parte do código ficou mais fácil voltar a fazer. Na verdade o raciocínio está certo.

O problema estava nas ' '.

Na config.php, deveria estar:

<?php
       DEFINE('Registo_ativado', 'True');
?>

E no radiobutton.php deveria estar:


<?php require_once('config.php'); ?>

<form method="post">
       <p><b>Registos:</b></p>
       <br><input type="radio" name="Fregistos" value="ativados">Ativados<br><br><input type="radio" name="Fregistos" value="desativados">Desativados
       <input type="submit" name="Fconfig" class="submit" value="Submeter" />
</form>

<?php
if(isset($_POST['Fconfig'])) {
       $file = 'config.php';
       $configs = file_get_contents($file);

       //if (!empty($_POST["Fregistos"])) {
               if($_POST['Fregistos'] == 'ativados') {
                       $configs = str_replace(Registo_ativado, 'True', $configs);
               } elseif($_POST['Fregistos'] == 'desativados') {
                       $configs = str_replace(Registo_ativado, 'False', $configs);
               }
       //}

       file_put_contents($file, $configs);
}
?>

Pois True ou False sem aspas vai ter um output de 1 ou 0, o que significa que teria que mudar a comparação no if.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.