Jump to content
Fórum Script Brasil
  • 0

Function para criar ComboBox dinamicamente, duvida na edição dos dados


egpjdf
 Share

Question

Olá galera, sou novato neste fórum, e estou com uma pequena dúvida,

Criei uma function para criar um combo dinamicamente, esta funfando bele, e ficou assim:

function criarCombo(){
        $sql = "SELECT $this->dados, $this->fieldId FROM $this->table ORDER BY $this->dados";
        $rs_sql = mysql_query($sql);
        $combo .= "<option value=\"\"></option>\n";
        while($linha=mysql_fetch_array($rs_sql)){
            $id = $linha[$this->fieldId];
            $nome  = $linha[$this->dados];
            $combo = $combo . "<option value=\"$id\">$nome</option>\n";
        }
        echo $combo;
}

Minha dúvida é a seguinte, quando puxo os dados em um form para edição como poderia fazer para pegar a informação que foi salva no campo combo e trazer ela como selected ??? :unsure:

Agradeço pela ajuda.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Você pode salvar o valor vindo do form em uma variável, e aí é só comparar com o valor do combo. Se for igual, você imprime o "selected".

Vamos supor que você tenha atribuído o valor vindo do form à variável $comboForm.

function criarCombo(){
        $sql = "SELECT $this->dados, $this->fieldId FROM $this->table ORDER BY $this->dados";
        $rs_sql = mysql_query($sql);
        $combo .= "<option value=\"\"></option>\n";
        while($linha=mysql_fetch_array($rs_sql)){
            $id = $linha[$this->fieldId];
            $nome  = $linha[$this->dados];
            $combo .= "<option value=\"$id\""
            if($comboForm == $id){
                $combo .= " selected";
            }
            $combo .= ">$nome</option>\n";
        }
        echo $combo;
}

Edited by MLeandroJr!
Link to comment
Share on other sites

  • 0

Você pode implementar um argumento no método criarCombo

Exemplo:

/**
 *  @param string $select Utilizado para passar o id da linha a ser selecionado 
 */
function criarCombo($select=''){
        $sql = "SELECT $this->dados, $this->fieldId FROM $this->table ORDER BY $this->dados";
        $rs_sql = mysql_query($sql);
        $combo .= "<option value=\"\"></option>\n";
        while($linha=mysql_fetch_array($rs_sql)){
            $id = $linha[$this->fieldId];
            $nome  = $linha[$this->dados];
            $combo = $combo . sprintf("<option value=\"$id\" %s>$nome</option>\n",($select==$id)? 'selected="selected"' : '');
        }
        echo $combo;
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...