Error with php array

Asked

Viewed 26 times

0

I’m putting together an array, but it seems I’m doing it wrong because it doesn’t work properly.

$checklisIni = array(
    $_POST['checklistIni0']     =>  $_POST['checklistNome0'],
    $_POST['checklistIni1']     =>  $_POST['checklistNome1'],
    $_POST['checklistIni2']     =>  $_POST['checklistNome2'],
    $_POST['checklistIni3']     =>  $_POST['checklistNome3'],
    $_POST['checklistIni4']     =>  $_POST['checklistNome4'],
    $_POST['checklistIni5']     =>  $_POST['checklistNome5'],
    $_POST['checklistIni6']     =>  $_POST['checklistNome6'],
    $_POST['checklistIni7']     =>  $_POST['checklistNome7'],
    $_POST['checklistIni8']     =>  $_POST['checklistNome8'],
    $_POST['checklistIni9']     =>  $_POST['checklistNome9'],
    $_POST['checklistIni10']    =>  $_POST['checklistNome10'],
    $_POST['checklistIni11']    =>  $_POST['checklistNome11'],
    $_POST['checklistIni12']    =>  $_POST['checklistNome12'],
    $_POST['checklistIni13']    =>  $_POST['checklistNome13'],
    $_POST['checklistIni14']    =>  $_POST['checklistNome14'],
    $_POST['checklistIni15']    =>  $_POST['checklistNome15']
);

print_r($checklisIni);


exit();

Return of $checklistIni:

Array ( [has] => Internal mirror )

It should have more values, because giving a print_r($_POST); appears all these values:

[checklistNome0] => Documento
[checklistIni0] => tem
[checklistNome1] => Manual
[checklistIni1] => tem
[checklistNome2] => Vidro eletrico
[checklistIni2] => tem
[checklistNome3] => Radio/CD
[checklistIni3] => tem
[checklistNome4] => Comando retro. inter
[checklistIni4] => tem
[checklistNome5] => Arcondicionado
[checklistIni5] => tem
[checklistNome6] => Travas portas
[checklistIni6] => tem
[checklistNome7] => Antena
[checklistIni7] => tem
[checklistNome8] => Chave reserva
[checklistIni8] => tem
[checklistNome9] => Tapetes
[checklistIni9] => tem
[checklistNome10] => Revest. interno
[checklistIni10] => tem
[checklistNome11] => Bancos
[checklistIni11] => tem
[checklistNome12] => Macaco
[checklistIni12] => tem
[checklistNome13] => Chave de rodas
[checklistIni13] => tem
[checklistNome14] => Triangulo
[checklistIni14] => tem
[checklistNome15] => Retrovisor interno
[checklistIni15] => tem

1 answer

2


Hello,

Your code is doing exactly as programmed. You are creating an index in the array and assigning a correct value, however all indexes have the same name. In your case, this name is the tem. A simpler solution to your problem is to reverse things in creating your array. See:

$checklisIni = array(
    $_POST['checklistNome0'] => $_POST['checklistIni0'],
    $_POST['checklistNome1'] => $_POST['checklistIni1'],
    $_POST['checklistNome2'] => $_POST['checklistIni2'],
    $_POST['checklistNome3'] => $_POST['checklistIni3'],
    $_POST['checklistNome4'] => $_POST['checklistIni4'],
    $_POST['checklistNome5'] => $_POST['checklistIni5'],
    $_POST['checklistNome6'] => $_POST['checklistIni6'],
    $_POST['checklistNome7'] => $_POST['checklistIni7'],
    $_POST['checklistNome8'] => $_POST['checklistIni8'],
    $_POST['checklistNome9'] => $_POST['checklistIni9'],
    $_POST['checklistNome10'] => $_POST['checklistIni10'],
    $_POST['checklistNome11'] => $_POST['checklistIni11'],
    $_POST['checklistNome12'] => $_POST['checklistIni12'],
    $_POST['checklistNome13'] => $_POST['checklistIni13'],
    $_POST['checklistNome14'] => $_POST['checklistIni14'],
    $_POST['checklistNome15'] => $_POST['checklistIni15']
);

Return of $checklisIni:

Array(
    [Documento] => tem
    [Manual] => tem
    [Vidro eletrico] => tem
    [Radio/CD] => tem
    [Comando retro. inter] => tem
    [Arcondicionado] => tem
    [Travas portas] => tem
    [Antena] => tem
    [Chave reserva] => tem
    [Tapetes] => tem
    [Revest. interno] => tem
    [Bancos] => tem
    [Macaco] => tem
    [Chave de rodas] => tem
    [Triangulo] => tem
    [Retrovisor interno] => tem
)



A tip that I give, instead of sending 32 posts, which can get a little pulled to the server, how about sending a single post containing an array or an object? You can submit this in JSON format. This will make your requests lighter and simpler!
I hope I helped, hug!

  • 1

    Thanks Lucas! Thank you so much.

  • How would you send via JSON?

  • 1

    If you are sending these posts from a javascript, for example, just give a JSON.stringify() in your array, and send a single post (for example with the name data). So in your php you just pass this to array again, using the json_decode. Example: $array = json_decode($_POST["data"]).

Browser other questions tagged

You are not signed in. Login or sign up in order to post.