Error passing JS array values to simple PHP

1

My code is the one below:

<html>
<body>



<form method="post" action="recebe.php" >
<input type="hidden" id="send_string_array" name="send_string_array" value="" />
<input type="submit" value="Enviar" />
</form> 
</body>
<head>
<script>

//variáveis
var array_produtos = Array([1,2,3,4,5,6]);

var i, array_produtos, string_array;


//varre o array só pra mostrar que tá tudo ok
for (i in array_produtos)
alert(array_produtos[i]);




document.getElementById("send_string_array").value =     array_produtos.join("|");
</script>
</heady>
</html>

The code PHP that should work and show the array is this:

<?php

//transforma a string de itens separados em array
$array_produtos = explode("|", $_POST['send_string_array']);
//mostra o conteúdo do array 
echo $_POST['send_string_array'];

?>

The PHP is returning this Array ( [0] => ); , but should contain the values in the array, right?

What would be my mistake?

    
asked by anonymous 12.06.2015 / 04:06

1 answer

2

Your error is in javascript , but a note before, you are setting array_produtos twice what would be unnecessary.

var array_produtos = Array([1,2,3,4,5,6]); /* aqui */
var i, array_produtos; /* e aqui */

Now about your error is in this line

array_produtos = array_produtos.split("|");

The array of javascript does not have any function split and since your logic does not need this line, remove it and your program will probably work.

Thus getting javascript :

<script>

    //variáveis

    var array_produtos = Array([1,2,3,4,5,6]);
    var i;

    //varre o array só pra mostrar que tá tudo ok
    for (i in array_produtos)
        alert(array_produtos[i]);

    document.getElementById("array_produtos").value =      array_produtos.join("|");
</script>

The split function you were trying to use is when the variable is String , that is, you can use it like this:

var virouString = array_produtos.join("|");
var virouArrayNovamente = virouString.split("|");
    
12.06.2015 / 04:25