Jump to content
Sign in to follow this  
Jeovane Carvalho

Passar um array de um select para uma url em ajax

Recommended Posts

Salve pessoal, depois de percorrer todos este fórum e outros fóruns estrangeiros, não consegui solucionar meu problema, pois tenho um select que pega dados dinâmicos vindo do value, segue os códigos:

<select id="cidade" onchange="fLoadBairro(this.value);"  class="search-box__combo" multiple name="cidade[]">
<option value="" id="">Cidade</option>
<optgroup label="Cidades">

<?php 
$sql = $MySQLi->query("SELECT id, cidade, uf FROM cidades ORDER BY cidade ASC");
while( $linha_1 = mysqli_fetch_array( $sql ) )

echo '<option value="'.$linha_1['id'].'">' .$linha_1['cidade'].'/'.$linha_1['uf'].'</option>';

?>

</optgroup>
</select>

E abaixo o select BAIRROS:

<select id="bairro"   href="#BoxBairros" name="bairro"  class="search-box__combo">
<option value="0" selected>Bairros</option>

</select>

Mas na verdade só preciso passar os parâmetros que vem do value cidade , por exemplo no select cidade tem as cidades em seus options, são paulo, guarulhos, diadema, mas eu preciso pegar apenas o id que São Paulo seria ID 1 , Guarulhos ID 2 e assim sucessivamente, eu consigo pegar os valores num id único * cidade.value *, mas assim não consigo pegar todos os ids selecionados e enviar ao php, e pelo ajax e estou enviando assim:

function fLoadBairro(xDIV){
			with(document.busca){				
ChamaAJAXDIV3("div_PesqBairros", "combo_cidades.php?id="+cidade.value);


			}
		}	

Assim eu consigo enviar normalmente , mas só chega o primeiro id, tentei usar assim:

var cidade = $('#cidade').serializeArray();

Eu preciso passar esse array na url em ajax porque ela irá retornar os valores para o select BAIRROS... Mas não deu certo, qual seria a solução..

Share this post


Link to post
Share on other sites

E ai pessoal, estou quase perto de solucionar meu problema, só estou com dificuldade de passar os valores dinamicamente com java script que não é muito meu forte, segue o código:

var valor = [];
valor.push('1','3');

for(var i = 0; i < valor.length; i++) {
 alert(valor[i]);
}

function fLoadBairro(xDIV){
with(document.busca){				
ChamaAJAXDIV3("div_PesqBairros", "combo_cidades.php?id="+valor);




			}
		}		

Notem que dentro do parâmetro push , eu passo o valor manualmente ( 1,2) , e preciso pegar isso vindo do select gerado pelo php que fica dentro do select, alguém poderia me ajudar...

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
Sign in to follow this  

  • Similar Content

    • By Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

    • By gersonab
      Bom dia, tenho 2 tabelas editáveis em uma div, estas funcionam normalmente, o problema é que o loop não acontece , só carrega sobre 1 item, sendo que este eu posso ter mais itens.
       na página principal tenho:
      <div class="carregadados"></div> function fetch_data() { $.ajax({ url:"../lista/finan.php", method:"POST", success:function(data){ $('.carregadados').html(data); } }); } fetch_data(); a página a ser carregada esta assim:
      <?php session_start(); require_once('config.php'); $output = ''; $idc1=$_SESSION['idc']; $sql01 = "SELECT * FROM porcent WHERE idfcli='$idc1'"; $result = mysqli_query($con, $sql01); while($user41 = mysqli_fetch_array($result)){ // primeiro while onde seleciono os itens da pessoa podendo ter vários $output .= ' <div class="table-responsive mb-4 mt-4"> Aqui vem os dados da pessoa '; $id1= $user41["idproc"]; $sqladv = "SELECT * FROM poradv WHERE procav='$id1'"; $resulta = mysqli_query($con, $sqladv); $output .= ' <table class="table table-bordered table-hover table-striped" style="width:100%"> <thead> <tr> </tr> </thead> <tbody>'; if(mysqli_num_rows($resulta) > 0) { while($usera = mysqli_fetch_array($resulta)){ //segundo while onde tenho os dados de venda em uma tabela editavel $output .= ' <tr> </tr>'; } $output .= ' <tr> // insiro linhas caso precise </tr> '; } else { $output .= '<tr> // caso não tenha nada inserido, posso fazer por aqui </tr> '; } $output .= '</tbody> </table>'; $id2= $user41["idproc"]; $sql = "SELECT * FROM parcelas WHERE procid='$id2' ORDER BY datapar, idpar ASC"; $result = mysqli_query($con, $sql); $output .= ' <table class="table table-bordered table-hover table-striped" style="width:100%"> <thead> <tr> // tabela de pagamentos editavel </tr> </thead> <tbody>'; if(mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_array($result)) { //terceiro while , tabela referente a pagamentos $output .= ' <tr> // tabela pagamentos </tr>'; } $output .= ' <tr> // insiro linhas caso precise </tr> '; } else { $output .= '<tr> // caso não tenha nada inserido, posso fazer por aqui </tr> '; } $output .= '</tbody> </table> </div> '; } echo $output; ?> só esta carregando uma vez , tudo dentro da parte editável esta funcionando, porém no primeiro while só faz 1 loop, os demais estão funcionando perfeitamente.
      desde já agradeço qualquer ajuda.
    • By diagphp
      Olá amigos, sou muito novo no assunto de consultar APIs em PHP, então gostaria por gentileza de uma ajuda.
       
      Tem uma api externa que devemos consultar, mas está retornando o erro: PHP Fatal error: Uncaught Error: Class 'GuzzleHttp\Client' not found in /home1/

      A hospedagem é Hostgator.
       
       
      A consulta é simples:
       
      <?php
      $client = new \GuzzleHttp\Client();
      $response = $client->get("https://api.centraldofrete.com/v1/cargo-type", [
          'headers' => [
                  'Authorization' => '{token do cliente}',
              ],
      ]);
      $body = $response->getBody();
      print_r(json_decode((string) $body));
      ?>
       
      Alguém poderia me ajudar a fazer este tipo de consulta e obter o retorno da API? Tem algum arquivo a mais que tenho que colocar no servidor?
       
      Agradeço a  ajuda!
    • By dmelo
      Eu tenho um script   $('.btn').click();   mas ele só funciona se eu deixar o mouse em cima do elemento.
      Como fazer pra ele funcionar ignorando a posião do mouse?
      Agradeço muito quem puder me ajudar pois já procurei em vários fóruns mas não achei a solução.
    • By mamotinho
      Olá, estou com problemas, minha data está atualizando porém eu clico em um produto ele exibe o tempo sem atualizar . quando eu mudo de produto ele mostra os dois valores exemplo
      Produto 1: tem duraçao de: 1 dia e 13:023 PM
      Produto 2: tem duraçao de: 0 dia e 23:023 PM

      Quando eu clico no produto 1 ele exibe normalmente, porém quando mudo para o produto 2 ele fica atualizando o valor do dia do produto 1 e do produto 2 sempre mudando.
      segue abaixo como está o codigo

      JavaSCRIPT
       
      function anooo(mes,dia,h,m){ var mess = mes; var dias = dia; var hss = h; var mss = m; // Set the date we're counting down to var countDownDate = new Date(""+mess+" "+dias+", 2020 "+hss+":"+mss+":00").getTime(); // Update the count down every 1 second var x = setInterval(function() { // Get today's date and time var now = new Date().getTime(); // Find the distance between now and the count down date var distance = countDownDate - now; // Time calculations for days, hours, minutes and seconds var dayss = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("days").innerHTML = dayss; document.getElementById("hrs").innerHTML = hours; document.getElementById("minus").innerHTML = minutes; document.getElementById("secs").innerHTML = seconds; this.remove(countDownDate); // If the count down is over, write some text if (distance < 0) { clearInterval(x); } }, 1000); } AQUI É O CHAMADO:
       
      <? if($result->Discount>=1){ $Month = date('M', strtotime($result->DateDiscount)); $Days = date('d', strtotime($result->DateDiscount)); $Hours = date('H', strtotime($result->DateDiscount)); $Minutes = date('i', strtotime($result->DateDiscount)); echo "<script>anooo('".$Month."','".$Days."','".$Hours."','".$Minutes."')</script>"; //echo "<script>alert('".$Month."')</script>"; ?> <ul class="time_sell remain_time"> <li> <dl> <dt class="blind">남은시간</dt> <dd> <span class='n_date day' id='days'></span> <span class='date'>일</span> <span class='n_time hour' id='hrs'></span> <span class='n_time minute' id='minus'></span> <span class='n_time second' id='secs'></span> <div id="countdown"></div> </dd> </dl> </li> </ul> <? } ?> eu já tentei de tudo mais sempre que mudo de produto ele exibe a data dos produtos anteriores em loop. a cada atualização do setInterval
×

Important Information

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