Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Alert PHP array()

Sivun loppuun

Request [02.04.2013 12:04:52]

#

Terve!

Tietääkö kukaan, että miten JavaScriptillä saisi alerttina tulostettu sellaisenaan PHP -taulukon?

Esimerkkinä taulukko minkä voisi tulostaa:

$message = array(0 => array(1, 2), 1 => array('henkilot' => array('Nimi' => 'Test', 'Numero' => 05050), 'osoitteet' => array('Katu' => 'Joku katu', 'Jne' => 1111)));

echo "<script type=\"text/javascript\">";
echo " alert(\"$message\");\n";
echo "</script>";

Tämä ei tosin toimi, koska ilmeisesti JavaScript haluaisi tämän stringinä...
Olen kuitenkin koittanut muuttaa taulukkoa jsoniksi, castingia jne. mutta jostain syystä en saa taulukkoa tulostettua.
Eli miten PHP -taulukon (moniulotteisen ja tavallisen) saisi tulostettua tuollaisenaan alerttina? Vai pitääkö käydä silmukalla läpi vai miten?

Ripe [02.04.2013 12:24:25]

#

Eiköhän se ole helpointa tehdä php:n foreachilla:

$str = "";
foreach ($message as $m){
	if (is_array($m)){
		foreach ($m as $key => $value){
			$str .= $subm;
		}
	} else {
		str .= $m;
	}
}

Jotenkin noin pitäisi toimia

qeijo [02.04.2013 13:02:12]

#

Ei ei saatana Ripe, tuohan on paska.

Tein sinulle tällaisen, mihin voin laittaa tilinumeron? Meni arvioilta 1 - 5 tuntia.

class DynamicEssentialExxxelattor {

    private $strXxXstr3 = array();

    function ex3mImplodeMultidisaster2000(array $xXx) {

        foreach($xXx as $xSecc) {

            if (is_array($xSecc))
                $this->ex3mImplodeMultidisaster2000($xSecc);
            else
                $this->strXxXstr3[] = $xSecc;
        }
    }

    function __toString() {

        return implode(' ', $this->strXxXstr3);
    }
}

$message = array(
    array(
        "G" => "A",
        "A" => array(array("B")),
        "C"
    ),
    "Kepa" => array("D", "C" => array("F" => "E"),
        array(
            array(
                "F",
                array(
                    "I" => "G"
                )
            )
    ))
);

$dynamiEssentialExxxelattor = new DynamicEssentialExxxelattor();
$dynamiEssentialExxxelattor->ex3mImplodeMultidisaster2000($message);

print $dynamiEssentialExxxelattor;

Request [02.04.2013 13:13:31]

#

qeijon luokka on ihan hieno, mutta tarkoitus on nimenomaan, että noi avaimet näkyis myös... alertin tarkoitus olis ihan vaan helpottaa tietämään, että millainen taulukko on ja mitä avaimia ja arvoja siellä on. Eli sais tulostettua alertilla sellaisenaan, kun se taulukko PHP:ssä on.

Tolostus esimerkiksi muotoa: array(0 => array(1, 2), 1 => array('henkilot' => array('Nimi' => 'Test', 'Numero' => 05050), 'osoitteet' => array('Katu' => 'Joku katu', 'Jne' => 1111)));

Vähän selitin huonosti...

qeijo [02.04.2013 13:16:54]

#

$message = array(0 => array(1, 2), 1 => array('henkilot' => array('Nimi' => 'Test', 'Numero' => 05050), 'osoitteet' => array('Katu' => 'Joku katu', 'Jne' => 1111)));

print_r($message);

// Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [henkilot] => Array ( [Nimi] => Test [Numero] => 2600 ) [osoitteet] => Array ( [Katu] => Joku katu [Jne] => 1111 ) ) )

Eli vastaus on: print_r

Ripe [02.04.2013 13:17:16]

#

No tuohan toimii var_export-funktiolla ja tuo print_r toimii myös

Ja qeijolle vielä, että tuo oli puolessa minuutissa kyhätty viritelmä, ei ollu mitään tietoa toimiiko

Request [02.04.2013 13:36:02]

#

joo, kyllä noi pystyy tulostaan tietty print_r:llä, var_export:lla, var_dump:lla jne. mutta pystyykö JavaScriptin alertilla?

<script>
   alert('Array ( [0] => Array ( [0] => 1...');
</script>

qeijo [02.04.2013 13:54:37]

#

Toi sun alkuperäinen kysymys oli niin typerästi esitetty, ettei tässä kukaan tiennyt mitä oikein kaipasit.

<?php

$message = array(0 => array(1, 2), 1 => array('henkilot' => array('Nimi' => 'Test', 'Numero' => 05050), 'osoitteet' => array('Katu' => 'Joku katu', 'Jne' => 1111)));

$message = str_replace (array("\r\n", "\n", "\r"), '', print_r($message, true));

?>

<script>
     alert('<?= $message; ?>');
</script>

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta