Jump to content
mzaidan

Atualizar tabela ao mudar select

Recommended Posts

Pessoal, tenho o seguinte codigo:

function showUser(str) {
    if (str == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","getFaixa.php?q="+str,true);
        xmlhttp.send();
    }
}

Na mesma página, logo embaixo:

<select name='faixa' id='appearance-select' onchange="showUser(this.value)">
   <option value='branca'  <?=($faixa == 'branca')?'selected':''?>>Branca</option>
   <option value='azul'  <?=($faixa == 'azul')?'selected':''?>>Azul</option>
   <option value='roxa'  <?=($faixa == 'roxa')?'selected':''?>>Roxa</option>
   <option value='marrom'  <?=($faixa == 'marrom')?'selected':''?>>Marrom</option>
   <option value='preta'  <?=($faixa == 'preta')?'selected':''?>>Preta</option>
  </select><br>

No getFaixa.php:

include("conexao.php");



$q = intval($_GET['q']);
$id = $_SESSION['id'];

$update = "UPDATE usuario SET faixa='$q' WHERE usuario_id='$id'";

$result = mysqli_query($conexao, $update);

O que eu gostaria era mudar o campo no BD, usando ajax.

Ele até está mudando, só que está botando um 0 ao invés do value do select.

 

Alguém poderia me ajudar?
Onde estou errando?

Grato.

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

  • Similar Content

    • By mateus.andriollo
      Qual seria a forma correta de projetar uma aplicação multi formulários. Estou fazendo ela em Jquery com Load() mas algumas ações não são executadas em script.
      Me pergunto seria o correto?
       
      Exemplo: pensando um cadastro de clientes/empresas
      - clientes.php (formulário de cadastro/edição/anexos)
      - empresas.php (formulários de cadastro de empresa/ funcionários/ setores)
      - relatorios.php (clientes e empresas)
       
      Cada página dessa eu chamo, ela vem sempre com o seu conteúdo...
      Pensei no seguinte, todos estea formulários carregados e eu apenas usar função Get() para preencher campos e gerar os relatórios.
       
      Fica a dúvida, pois hj essas páginas extras são HTML com form e ações PHP
       
       
       
       
       
    • By marcossantana10
      Amigos, estou com o seguinte problema: quando monto meu formulário dinamicamente, ao clicar no botão submit é dado um refresh na página, ao invés de realizar o submit. Esse formulário busca todos os registros de uma dada categoria no banco de dados e os monta na página para que possam ser editados individualmente.
      Segue o código:
      //montando os formulários:
          $.each(responseJson, function(key, value){                                 var itens = "<div class='card_nbl'><div class='container_nbl'><div class='text_card_nbl update_info_consulta'><form name='updateProntuario' method='post'><label style='text-align: left;' for='prontuario'>Consulta:</label><textarea name='prontuario' class='input_full' style='resize: none; height: 100px; padding-top: 10px; margin-top: 5px;' id='prontuario'>"+value.descricao+"</textarea><label style='text-align: left;' for='info_sigilosa'>Informações sigilosas:</label><br><textarea name='info_sigilosa' class='input_full' style='resize: none; height: 100px; padding-top: 10px; margin-top: 5px;' id='info_sigilosa'>"+value.info_sigilosa+"</textarea><input type='submit' name='salvar' value='Salvar' class='btn btn_padrao'></form></div></div></div>"                                 $("#item1mobile").append(itens)                             })  
      Minha função de submit:
          $(function(){                 $('form[name=updateProntuario]').submit(function(){                     $.ajax({                         type: 'POST',                         url: 'www',                         dataType: 'json',                         data: $(this).serialize(),                         success: function(data){                             $("#loading").attr("class", "loading")                             swal_sucesso("Tudo certo!", "As informações sobre a consulta foram atualizadas.")                         }                     });                 return false;                 })             }) OBS: quando eu faço o formulário direto no HTML (sem montar vários itens com um laço, como acima), o submit funciona normalmente.
       
    • By mzaidan
      Boa tarde, estou fazendo a conexão da seguinte maneira:
      $servername = "localhost"; $database = "banco"; $username = "user"; $password = "senha"; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } //echo "Connected successfully"; mysqli_close($conn);  No campo pesquisar:
      require_once('class/Conexao.class.php'); try { $pdo = new Conexao(); $resultado = $pdo->select("SELECT * FROM phrasal WHERE ingles LIKE '$parametro%' or portugues like '$parametro%' ORDER BY id LIMIT 4"); $pdo->desconectar(); }catch (PDOException $e){ echo $e->getMessage(); } //resgata os dados na tabela if(count($resultado)){ foreach ($resultado as $res) { $msg .=" <tr>"; $msg .=" <td><font color='#87CEFA' size=$size><b>".$res['ingles']."</b></font></td>"; $msg .=" <td><div class='a'><font size=$size>".$res['portugues']."</font></div></td>"; $msg .=" <td><div class='a' align='justify'><font size=$size>".$res['exemplo']."</font></div></td>"; $msg .=" </tr>"; } }else{ $msg = ""; $msg .="Nenhum resultado foi encontrado..."; } $msg .=" </tbody>"; $msg .="</table>"; //retorna a msg concatenada echo $msg; Mas não retorna nada.
      Onde estou errando?

      Site: http://ehoradoingles.com/

      Desde já agradeço.
    • By FabianoSouza
      Preciso adicionar uma função de timeout na minha requisição AJAX e peço ajuda aos colegas.
      Já tenho um AJAX que funciona normalmente. Preciso de ajuda para saber como implementar um timeout no código que já tenho.
       
      Vejam o código. É um script genérico, para ser reutilizado pelas diversas functions do sistema, que precisam trazer dados.
      const server = { req : null, res : null, ajax : function(strReq, functionResposta) { this.req = strReq this.url = this.req.url this.req = JSON.stringify(this.req); this.status = 0; try { if (window.XMLHttpRequest) { $obj = new XMLHttpRequest(); } else { $obj = new ActiveXObject('Microsoft.XMLHTTP'); } $obj.onreadystatechange = function() { if ($obj.readyState == 4 && $obj.status >= 200 && $obj.status <= 299) { server.res = JSON.parse($obj.responseText); functionResposta(); } } $obj.open('post', this.url, true); $obj.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); $obj.send(encodeURI('str='+server.req)); } catch(e) { this.req = null; this.res = null; } } };  
       
      Para chamar essa function, passando parâmetros, faço assim:
       
      //crio uma string com parâmetros... var obj={id:'XPTO', url:'/app/backend/'}; //invoco a function AJAX escrita acima server.ajax(obj, function(){});}  
      Essa estrutura funciona normalmente. Só preciso mesmo saber como implementar um "timer" para responder assim que receber a resposta do servidor.
    • By Jack Oliveira
      Boa noite pessoal
       
       
      Quero fazer uma verificação em tempo real no banco de dados antes de clicar para cadastra, ver se o nome que esta no input name="nome_empresa_link"   ver se ele já existe no banco de dados. no caso so permitir preencher outro campos se o input que esta sendo verificado estiver correto ou seja tudo ok...
       
      Lembrando este input ele é preenchido conforme é digitado no input name="nome_empresa"  Não sei se isso interfere ao fazer a verificação
       
      HTML
             <div class="col-md-6">         <div class="form-group">          <label for="nome_empresa">Nome</label>          <input type="text" autocomplete="off" id="nome_empresa" maxlength="100"  name="nome_empresa" class="form-control input_nome_empresa" required placeholder="Nome da Loja">        </div>      </div>      <div class="col-md-6">       <div class="form-group">        <label for="nome_empresa_link">Url Amigavél</label> <em id="resposta"></em>        <input type="text" autocomplete="off"  id="nome_empresa_link" name="nome_empresa_link" maxlength="100" class="form-control input_nome_empresa_link" required placeholder="/ Use maiúsculas, minúsculas e underline.">        <?= $site; ?><span><em style="color: green;" id="nome_empresa_link"></em>/</span>      </div>    </div> No PHP fazer verificação fiz isso...
      <?php if(isset($_POST['nome_empresa_link'])) { $nome_empresa_link=$_POST['nome_empresa_link']; $checkdata = DBCount('ws_empresa','nome_empresa_link',"WHERE nome_empresa_link = '{$nome_empresa_link}'"); if ($checkdata >= 0) { //echo "Um nome igual este já esta sendo usado no sistema"; swal('Atenção!!!', 'A URL AMIGAVÉL não disponivél para cadastro \n tente com outro nome!', 'warning', 'Fechar'); } /*else { echo "<font color='green'>Disponivél...</font>"; } */ exit(); } ?> No ajax fiz assim
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script language="javascript"> var nome_empresa_link = $("#nome_empresa_link"); nome_empresa_link.blur(function() { $.ajax({ url: 'notificacao/checkdata.php', type: 'POST', data:{"nome_empresa_link" : nome_empresa_link.val()}, success: function(data) { console.log(data); data = $.parseJSON(data); $("#resposta").text(data.nome_empresa_link); } }); }); </script> Só que não retorna nada
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.