Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,possuo um código que estou tentando enviar para a url a id da categoria selecionada pelo form select.
Porém ele está retornando valor nenhum,alguns minutos atras tentei outro código que só retornava valor 27 que seria da primeira categoria do select.
Poderiam verificar um erro nesse código que não deixa direcionar para a url correta.
<?php
session_start();
if((!isset ($_SESSION['nome']) == true) and (!isset ($_SESSION['saldo']) == true)) { unset($_SESSION['nome']); unset($_SESSION['saldo']); echo "<b>Você não está logado com sua conta,favor conectar-se.</b>"; }
include "config.php";
include "functions.php";
session_checker();
?>
<style type="text/css">
<!--
.style1 {color: #00CCFF}
-->
</style>
<center>
<?
$trabalho = $_POST['trabalho'];
$estado = $_POST['estado'];
if($trabalho == 0) { ?>
Selecione forma de trabalho desejado:
<form action="?page=trabalhos" method="post">
<select name="trabalho">
<option value="1">Compartilhar Notícias</option>
<option value="2">Vender Produtos</option>
<option value="3">Anúncio em Site</option>
</select>
<input type="submit" value="Ok" />
</form>
<? }elseif ($trabalho == 1) {
?>
<form action="?page=esc_noticia&categoria=<?=$estado?>" method="post">
<select name="estado">
<option value="0">Escolha uma Categoria</option>
<?php
$sql = "SELECT * FROM noticias_cat ORDER BY nome ASC";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo '<option value="'.$ln['id'].'">'.$ln['nome'].'</option>';
}
?>
</select>
<input type="submit" value="Ok" />
</form>
<? }elseif (trabalho == 2) { ?>
Vender Produtos
<? }else{ ?>
Anúncios em Sites
<? } ?>Por diversas vezes você tem aberto a tag PHP somente com <?, tente com a tag completa <?php, testei aqui e funcionou perfeitamente depois de trocar <? por <?php.
Por diversas vezes você tem aberto a tag PHP somente com <?, tente com a tag completa <?php, testei aqui e funcionou perfeitamente depois de trocar <? por <?php.
Efetuei o teste aqui e infelizmente não funcionou
>
Efetuei o teste aqui e infelizmente não funcionou
Qual o erro que tá sendo gerado? Posta o erro ou um print da tela pra gente ver e poder te ajudar. Às cegas fica difícil rs
ele simplesmente fica sem valor a variavel $estado
que seria a categoria.
Ele seleciona normalmente as categorias porém quando aperta em ok ele deveria dar o valor da categoria selecionada á variável estado.
mas está enviando valor nulo como se pode ver o link quando envia
esse é o link que recebe e deveria ser
/?page=esc_noticia&categoria=id da categoria
<form action="?page=esc_noticia&categoria=<?=$estado?>" method="post">
Não vê nada de errado aí? Se quiser que o PHP imprima o valor de $estado, precisa dar um echo na variável. A sintaxe está incorreta. Tente trocar **<?=$estado?>** por **<?php echo $estado; ?>**.
Essa é a linha 51 do seu código, se não me engano.
>
<form action="?page=esc_noticia&categoria=<?=$estado?>" method="post">
Não vê nada de errado aí? Se quiser que o PHP imprima o valor de $estado, precisa dar um echo na variável. A sintaxe está incorreta. Tente trocar **<?=$estado?>** por **<?php echo $estado; ?>**.
Essa é a linha 51 do seu código, se não me engano.
Sempre trabalhei dessa forma quando se trata de apenas uma variável,mas mesmo assim alterei para o script usando echo que me mandou e o resultado foi o mesmo infelizmente não funcionou também.
EDIT: Tinha postado um código de teste, corrigi agora;
Em vez de
<form action="?page=esc_noticia&categoria=<?=$estado?>" method="post">
<select name="estado">
<option value="0">Escolha uma Categoria</option>
<?php
$sql = "SELECT * FROM noticias_cat ORDER BY nome ASC";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo '<option value="'.$ln['id'].'">'.$ln['nome'].'</option>';
}
?>
</select>
<input type="submit" value="Ok" />
</form>
Tente assim, então:
<form method="get">
<input type="hidden" name="page" value="esc_noticia" />
<select name="categoria">
<option value="0">Escolha uma Categoria</option>
<?php
$sql = "SELECT * FROM noticias_cat ORDER BY nome ASC";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo '<option value="'.$ln['id'].'">'.$ln['nome'].'</option>';
}
?>
</select>
<input type="submit" value="Ok" />
</form>muito obrigado pela atenção Diego,esse código funcionou e resolveu meu problema.
Primeiramente, para passar um valor via url o metodo tem que ser GET