Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) $_POST não pega valor da tag <select option>


Paulo Emilio

Pergunta

meu form:

<form id="formnivel" action="trataNivel.php" method="post" >

<tr>

<th align="right" valign="center">

<div align="right">Status:</div>

</th>

<td align="left">

<div align="left">

<?php echo combo($campos, $tabela, $crivo, 'cmbestado'); ?>

</div>

</td>

</tr>

A função combo() marca sempre a 1a. opção do combo(select) como "selected", testei mudando para a 2a. opção e funcionou normal, porém,

Quando tento pegar o valor selecionado no combo(select) 'cmbestado' no arquivo trataNivel.php com o comando: $est = (int)trim($_POST["cmbestado"])

o valor é sempre zero, será alguma configuração que foi modificada ?

obs.: este $_POST funcionava anteriormente.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
meu form:

<form id="formnivel" action="trataNivel.php" method="post" >

<tr>

<th align="right" valign="center">

<div align="right">Status:</div>

</th>

<td align="left">

<div align="left">

<?php echo combo($campos, $tabela, $crivo, 'cmbestado'); ?>

</div>

</td>

</tr>

A função combo() marca sempre a 1a. opção do combo(select) como "selected", testei mudando para a 2a. opção e funcionou normal, porém,

Quando tento pegar o valor selecionado no combo(select) 'cmbestado' no arquivo trataNivel.php com o comando: $est = (int)trim($_POST["cmbestado"])

o valor é sempre zero, será alguma configuração que foi modificada ?

obs.: este $_POST funcionava anteriormente.

com o comando print_r($_post) apareçe o nome de outro combo.

Link para o comentário
Compartilhar em outros sites

  • 0

<?php

function combo($campos, $tabela, $crivo, $nome="cmbestado", $rep=0){

include "mysqlconfig.php"; // conecta banco dbagenda

if ($rep == 0){

include "mysqllistar.php"; // Executa a cláusula SQL

}

$sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca

// echo $sql;

$result = mysqllistar($conect, $sql);

if ($nome = "cmbprodage") {

$tag = "<select id= " .$nome. " name= " .$nome. " onblur='buscaprod(this.value)'>"; //Montagem do combo

}

elseif ($nome = "cmbfunc") {

$tag = "<select id= " .$nome. " name= " .$nome. " onfocus='buscafunc()'>"; //Montagem do combo

}

else {

$tag = "<select id= " .$nome. " name= " .$nome. ">"; //Montagem do combo

}

$cont = 0;

while ($dados = mysql_fetch_array($result)) {

++$cont;

if ($cont == 1 && $nome != "cmbrel") {

$tag.= "<option value='".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";

}

elseif ($cont == 5 && $nome == "cmbrel") {

$tag.= "<option value=".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";

}

else{

$tag.= "<option value='".$dados[0]."'>" .$dados[0]." - ".$dados[1]. "</option>";

}

}

mysql_close(); //fecha conexão

$tag.= "</select>";

return $tag;

}

function maxchave($campos, $tabela, $crivo, $nome, $rep=0) {

include "mysqlconfig.php"; // conecta banco dbagenda

if ($rep == 0){

include "mysqllistar.php"; // Executa a cláusula SQL

}

$sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca

$result = mysqllistar($conect, $sql);

if ($dados = mysql_fetch_array($result)) {

$tag = "<input id=" .$nome. " type='text' name='" .$nome. "' size='5' maxlenght='3' value='" .$dados[0]. "' />"; //Montagem do combo

}

mysql_close(); //fecha conexão

return $tag;

}

?>

meu form:

<form id="formnivel" action="trataNivel.php" method="post" >

<tr>

<th align="right" valign="center">

<div align="right">Status:</div>

</th>

<td align="left">

<div align="left">

<?php echo combo($campos, $tabela, $crivo, 'cmbestado'); ?>

</div>

</td>

</tr>

A função combo() marca sempre a 1a. opção do combo(select) como "selected", testei mudando para a 2a. opção e funcionou normal, porém,

Quando tento pegar o valor selecionado no combo(select) 'cmbestado' no arquivo trataNivel.php com o comando: $est = (int)trim($_POST["cmbestado])

o valor é sempre zero, será alguma configuração que foi modificada ?

obs.: este $_POST funcionava anteriormente.

com o comando print_r($_post) apareçe o nome de outro combo.

Apareçe sempre o nome: cmbprodage.

<?php

function combo($campos, $tabela, $crivo, $nome="cmbestado", $rep=0){

include "mysqlconfig.php"; // conecta banco dbagenda

if ($rep == 0){

include "mysqllistar.php"; // Executa a cláusula SQL

}

$sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca

// echo $sql;

$result = mysqllistar($conect, $sql);

if ($nome = "cmbprodage") {

$tag = "<select id= " .$nome. " name= " .$nome. " onblur='buscaprod(this.value)'>"; //Montagem do combo

}

elseif ($nome = "cmbfunc") {

$tag = "<select id= " .$nome. " name= " .$nome. " onfocus='buscafunc()'>"; //Montagem do combo

}

else {

$tag = "<select id= " .$nome. " name= " .$nome. ">"; //Montagem do combo

}

$cont = 0;

while ($dados = mysql_fetch_array($result)) {

++$cont;

if ($cont == 1 && $nome != "cmbrel") {

$tag.= "<option value='".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";

}

elseif ($cont == 5 && $nome == "cmbrel") {

$tag.= "<option value=".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";

}

else{

$tag.= "<option value='".$dados[0]."'>" .$dados[0]." - ".$dados[1]. "</option>";

}

}

mysql_close(); //fecha conexão

$tag.= "</select>";

return $tag;

}

function maxchave($campos, $tabela, $crivo, $nome, $rep=0) {

include "mysqlconfig.php"; // conecta banco dbagenda

if ($rep == 0){

include "mysqllistar.php"; // Executa a cláusula SQL

}

$sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca

$result = mysqllistar($conect, $sql);

if ($dados = mysql_fetch_array($result)) {

$tag = "<input id=" .$nome. " type='text' name='" .$nome. "' size='5' maxlenght='3' value='" .$dados[0]. "' />"; //Montagem do combo

}

mysql_close(); //fecha conexão

return $tag;

}

?>

meu form:

<form id="formnivel" action="trataNivel.php" method="post" >

<tr>

<th align="right" valign="center">

<div align="right">Status:</div>

</th>

<td align="left">

<div align="left">

<?php echo combo($campos, $tabela, $crivo, 'cmbestado'); ?>

</div>

</td>

</tr>

A função combo() marca sempre a 1a. opção do combo(select) como "selected", testei mudando para a 2a. opção e funcionou normal, porém,

Quando tento pegar o valor selecionado no combo(select) 'cmbestado' no arquivo trataNivel.php com o comando: $est = (int)trim($_POST["cmbestado])

o valor é sempre zero, será alguma configuração que foi modificada ?

obs.: este $_POST funcionava anteriormente.

com o comando print_r($_post) apareçe o nome de outro combo.

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
function combo($campos, $tabela, $crivo, $nome="cmbestado", $rep=0){
    include "mysqlconfig.php"; // conecta banco dbagenda
    if ($rep == 0){
        include "mysqllistar.php"; // Executa a cláusula SQL
    }
    $sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca
    // echo $sql;
    $result = mysqllistar($conect, $sql);
    if ($nome = "cmbprodage") {
        $tag = "<select id= " .$nome. " name= " .$nome. " onblur='buscaprod(this.value)'>"; //Montagem do combo
    }
    elseif ($nome = "cmbfunc") {
        $tag = "<select id= " .$nome. " name= " .$nome. " onfocus='buscafunc()'>"; //Montagem do combo
    }
    else {
        $tag = "<select id= " .$nome. " name= " .$nome. ">"; //Montagem do combo
    }
    $cont = 0;
    while ($dados = mysql_fetch_array($result)) {
        ++$cont;
        if ($cont == 1 && $nome != "cmbrel") {
            $tag.= "<option value='".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";
        }
        elseif ($cont == 5 && $nome == "cmbrel") {
            $tag.= "<option value='".$dados[0]."' selected>" .$dados[0]." - ".$dados[1]. "</option>";
        }
        else{
            $tag.= "<option value='".$dados[0]."'>" .$dados[0]." - ".$dados[1]. "</option>";
        }
    }
    mysql_close(); //fecha conexão
    $tag.= "</select>";
    return $tag;
}

function maxchave($campos, $tabela, $crivo, $nome, $rep=0) {
    include "mysqlconfig.php"; // conecta banco dbagenda
    if ($rep == 0){
        include "mysqllistar.php"; // Executa a cláusula SQL
    }
    $sql = "select ".$campos." from ".$tabela." ".$crivo.";"; //Busca
    $result = mysqllistar($conect, $sql);
    if ($dados = mysql_fetch_array($result)) {
        $tag = "<input id=" .$nome. " type='text' name='" .$nome. "' size='5' maxlenght='3' value='" .$dados[0]. "' />"; //Montagem do combo
    }
    mysql_close(); //fecha conexão
    return $tag;
}

//TESTANDO A COISA
if($_POST['enviar'] == 'Testar App')
{
    printf('<pre>%s</pre>', var_export($_POST['cmbestado'], true));
}

echo '<form method="post action="">';
echo combo('id, nome', 'cliente', 'WHERE TRUE');
echo '<input type="submit" name="enviar" value="Testar App">';
echo '</form>';

Link para o comentário
Compartilhar em outros sites

  • 0

Paulo,

A função combo tem um parametro que adiciona o nome do combo, veja qual valor esta sendo passado para ela.

Abraços

percebi que o nome que sempre apareçe com print_r é cmbprodage que pertence a um combo de outro form/arquivo php,

que manusiei anteriormente e que utiliza a função combo(), tem alguma coisa a ver ????

Link para o comentário
Compartilhar em outros sites

  • 0
percebi que o nome que sempre apareçe com print_r é cmbprodage que pertence a um combo de outro form/arquivo php,

que manusiei anteriormente e que utiliza a função combo(), tem alguma coisa a ver ????

ao trocar o nome do combo para cmbprodage o form funciona normalmente,

minha pergunta é:

O que está fazendo com que o combo cmbestado que monto com a função combo()

continue com o nome de cmbprodage ???

Como eu forço um parâmetro para o caso de nada ser informado no parâmetro $nome, na chamada da função combo(),

o nome não deveria ser sempre cmbestado ????

Link para o comentário
Compartilhar em outros sites

  • 0

Paulo,

Veja o exemplo do codigo abaixo:

<?php

function aiai( $arg = 'ursolouco' )
{
    printf('<h1>%s</h1>', $arg);
}


for($i=0; $i < 10; $i++)
    aiai($i);
    
aiai();

Como eu forço um parâmetro para o caso de nada ser informado no parâmetro $nome, na chamada da função combo(),

o nome não deveria ser sempre cmbestado ????

Link para o comentário
Compartilhar em outros sites

  • 0

Muito obrigado, pela ajuda,

descobri que quando testo o nome do combo na função combo() estou usando apenas um sinal de igualdade ao invés de dois,

mania que trouxe do velho Cobol,

de qualquer forma mais uma vez fico muito agradecido pela atenção e ajuda,

se todos os fóruns tivessem participantes como vocês,

a vida de nós, os inexperientes, seria bem mais fácil.

Boa tarde e muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Não me agradeça, faça o mesmo por alguém!

Abraços

Muito obrigado, pela ajuda,

descobri que quando testo o nome do combo na função combo() estou usando apenas um sinal de igualdade ao invés de dois,

mania que trouxe do velho Cobol,

de qualquer forma mais uma vez fico muito agradecido pela atenção e ajuda,

se todos os fóruns tivessem participantes como vocês,

a vida de nós, os inexperientes, seria bem mais fácil.

Boa tarde e muito obrigado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...