21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
szucs
Profil
Zdravim
Rad by som preniesol pole hodnot z PHP do Javascriptu

Jednu hodotu prenasam takto

<script language="JavaScript">
function funkcia (b) {

alert(b)

}script>
</head>
<body>

<?php $a= "pokus";

echo "<a href=\"javascript: funkcia ('$a')\">ahoj</a>";

?>

Ked to analogicky spravim, ze definujem $a ako pole a dam vypisat alert(b[0]), tak to nefunguje.
Ako inac sa daju este prenasat hodnoty z php do Javascriptu?
Na tomto mi trochu vadi, ze to vyzaduje kliknutie zo strany uzivatela.
Da sa to spravit aby sa realizoval Javascript s hodnotami s php aj bez zasahu uzivatela?
cize bez kliknutia na nejaky hzperlink?

Diki
centi
Profil
predpokladam ze ta javascriptova funkcia je v .php subore. tak jednoducho pouzi ten isty sposob ako uz mas v tej linke, len to daj uz do definicie javascriptu:



<?php
$a = "pokus";
?>
<script type="text/javascript">
function ()
{
alert(<?php echo $a; ?>);
}
</script>


Snad som to dobre napisal :)

A ten tvoj pokus s PHP polom nefunguje asi preto, ze javascript a PHP asi pouzivaju iny format pola.
centi
Profil
v tom alerte asi este bude treba vlozit uvodzovky:

alert("<?php echo $a; ?>");
szucs
Profil
Skusal som to aj s uvodzovkami aj bez nich, bohuzial to nefunguje.

Ako to funguje v pripade prenosu vacsieho mnozstva dat.
To pole som uviedol ako priklad.
Skor by som potreboval nacitat nejake udaje z Mysql do Javascriptoveho pola.
Myslel som si, ze to nacitam do php pola a tak prenesiem do Javascriptoveho pola
Honza Hučín
Profil
Pomocí PHP můžeš pole procházet a vypsat hodnoty do Javascriptu:

<?php
$hlp_string=""; //pomocny retezec
foreach($pole as $value)
$hlp_string .= ",\".$value.\"";
$hlp_string = substr($hlp_string,1); //umaze carku na zacatku
?>
<script>
var prom = new Array(<?php echo $hlp_string;?>);
</script>
llook
Profil
Jestli přenášíš text získaný od uživatelů, tak nezapomeň jeho hodnoty vyslashovat (kvůli XSS):

<script type="text/javascript"
<?php
$pole = array('aaa', 'bbb', 'ccc', 'ddd'); // pole co chceš přenést
$pole = array_map('addslashes', $pole); // nahrazení " za \"
echo('pole = new Array("'.implode('", "', $pole).'");');
?>
</script>
szucs
Profil
Dakujem
vyskusal som a dostavam bodku aj pred prvou hodnotu pola aj za prvou hodnotou pola.

Kde robim chybu prosim?

<?php
$hlp_string=""; //pomocny retezec
$pole = array('aaa', 'bbb', 'ccc', 'ddd');
foreach($pole as $value)
$hlp_string .= ",\".$value.\"";
$hlp_string = substr($hlp_string,1); //umaze carku na zacatku
?>
<script>
var prom = new Array(<?php echo $hlp_string;?>);
alert(prom[0])
</script>
centi
Profil
Tu chybaju uvodzovky este:

$hlp_string .= ",\".$value.\"";

prepis na:

$hlp_string .= ",\"".$value."\"";
Toto téma je uzamčeno. Odpověď nelze zaslat.

0