Pass array from javascript to php with ajax feature

2

Good morning everyone. I'm here with a question in a php / jquery job and I wanted you to help me

In a javascript file I have this code here

var categorias;
var categoria;
var array = [];




$(document).ready(function(){
	$.getJSON("Categorias.php", function(dados){
		categorias = dados;
		$.each(categorias, function(index, categoria){
                    
                   // var a = array.indexOf(categoria);
                    //if(a==-1){
                          array.push(categoria);
                      //}
                      
		});
                filtrar();
	}); 
});


function filtrar(){
            
            var variavel;
            for(var i = 0; i < array.length; i++){
                variavel = "<input type='checkbox' name='categorias' checked value='"+array[i].categoria+"' class='opcoes'/>"+array[i].categoria+"<br />";
                $("#filtro").append(variavel);
            }
            $("#ver").click(function(){
                array=[];
                $(".opcoes").each(function(index, check){
                   if($(check).prop('checked')){
                       array.push($(check).attr("value"));
                   }
                });
               alert("Você escolheu as seguintes categorias: " + array);
                });
                
                
            $("#todas").click(function(){
                array=[];
                $(".opcoes").each(function(index, check){
                   if($(check).prop('checked')){
                   }
                   else{
                       $(check).prop('checked', true);
                   }
                });
                });
                
                
            $("#remove").click(function(){
                array=[];
                
                $(".opcoes").each(function(index, check){
                   if($(check).prop('checked')){
                        $(check).prop('checked', false);
                   }
                });
                });
        }

And now I wanted to pass the variable array to my php page only I am not getting it

function(array)
   {
      $.ajax({
	  type: "POST",
      url: "load_post.php",
	  data: {categoria : array},
      success: function(dados){
          alert(dados);
	  $('#load_post').html(dados);
      }
    });
      
   }

In my variable array I have the name of the categories, so I wanted this function to receive this array, to transform it into a string so that I could then use it in a query to fetch the information from that category ...

no load_post.php I have this

<?php


$ligacao = mysqli_connect("localhost", "root", "", "publicidades");
                        if (mysqli_connect_errno()) {
                            echo "Erro na liga��o MySQL: " . mysqli_connect_error();
                        }
                        
                        
                        $sql_img = "SELECT * FROM publicidade WHERE id_publicidade  > 0 and estado = 1 AND categoria in ('".$_POST['categoria']."') ORDER BY visualizacoes DESC";
                        $imagem = mysqli_query($ligacao, $sql_img);
                        $objeto = mysqli_fetch_assoc($imagem);
                        $attempts = $objeto["descricao"];
                        $estado = $objeto["estado"];
                        
                        $visu = "SELECT visualizacoes FROM publicidade WHERE id_publicidade ='".$objeto["id_publicidade"]."'";
                        $obj = mysqli_query($ligacao, $visu);
                        $res = mysqli_fetch_assoc($obj);
                        $final = $res["visualizacoes"];
                        
                        
                        $num_post = mysqli_num_rows($imagem);


if( $num_post ) {
    if($estado){
                if($final>0){
                echo "<img src=\"$attempts\" alt=\"Não deu!!\">";
                $alterar = "UPDATE publicidade SET visualizacoes  = visualizacoes-1 WHERE descricao = '$attempts'";
                $alteracao =  mysqli_query($ligacao, $alterar);
                }else{
                    echo 'O seu tempo de antena acabou';
                }
                }   
} else {
   echo '<p>Já não existem mais imagens.</p>';
}

?>

Here I wanted to use the variable that comes to enter it in the query

Category.php

<?php

$ligacao = mysqli_connect("localhost","root","","publicidades");
   if (mysqli_connect_errno())
   {
	  echo "Erro na liga??o MySQL: " . mysqli_connect_error();
   }


$sql = "select distinct categoria from publicidade";

   $resultado = mysqli_query($ligacao, $sql);
   
$array_publicidades = array();

   while( ($registo = mysqli_fetch_assoc($resultado)) !=null)
   {
		$array_registo['categoria'] = $registo['categoria'];
		
                array_push($array_publicidades,$array_registo);
   }    
   
   echo json_encode($array_publicidades);
?>

Here I create a json with the various categories of ads

    
asked by anonymous 09.04.2015 / 15:21

1 answer

0

When I was using PHP and needed what I'm describing, I set up a string with all the positions of the array separated with 2 ex pipes: campoa || campob || campoc || etc ...  After the js side I would give a split in it, like var.split ("||"). so it makes the array again in js and in this way can manipulate the data.

    
15.04.2015 / 22:06