Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak předat/vypsat PHP proměnnou do JS (+html)?

Zdarec. Mám proměnnou $allergens1, která je polem. A chci tuto proměnnou zapsat do JS (s JS jsem nikdy nedělal, takže nevim...).
Jak si představuji, že by to mělo vypadat v PHP (funguje):

						echo "Alergeny jsou:<br>";
						for ($i=0; $i <= count($allergens1[$i]); $i++) { 
							echo $allergens1[$i]."<br>";
						}

potom mám JS script, do kterého to chci vložit. Je to pop up okno.

						echo "
							<script type=\"text/javascript\">
								window.onload = function () {
									alert(\"dopsat sem proměnnou z php\");
								}
							</script>
						";

Jak to mám udělat?
proměnná by měla vypadat třeba takto, myslím, ale jak ji tam vložit, aby to fungovalo?

var vypis = <?php 						echo "Alergeny jsou:<br>";
						for ($i=0; $i <= count($allergens1[$i]); $i++) { 
							echo $allergens1[$i]."<br>";
						} ?>
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
No tohle je takový galyatymáš, ve kterym se možná vyzná autor tak 2 dny potom, co to napíše. Ani IDE…
Pan Töfl 09.07.2015 19:21
Pan Töfl
Ten Script nefunguje. Tedy sám o sobě funguje, ale nezobrazuje html (takže se zobrazí <br>) a pokud…
Vilak 09.07.2015 19:28
Vilak
No v alertu opravdu HTML použít nemůžeš. Pokud tam chceš odřádkovat, tak místo <br> použij \n.
Wikan 09.07.2015 19:52
Wikan
Díky, stále tu mám ale tento script, který prostě nefunguje, proč? Tento script je daný v php v podm…
Vilak 09.07.2015 20:32
Vilak
Co přesně to teda vypíše do kódu stránky?
Wikan 09.07.2015 23:07
Wikan
To už nevím, napsal jsme kamarádovi, který mi pomohl se správným řešením, tady je (pro budoucí návšt… poslední
Vilak 10.07.2015 00:00
Vilak

Ten Script nefunguje. Tedy sám o sobě funguje, ale nezobrazuje html (takže se zobrazí <br>) a pokud je v tom echu, tak se neukáže vůbec (pokud ho dám do samotné stránky, tak jde). Navíc jak jsem zjistil, ten script JS nepodporuje html, jakto? Základ:

						<script type="text/javascript">
								window.onload = function () {
									alert("tady<br> nefunguje<br> html");
								}
						</script>

Tak jinak.
Mám nějakou php podmínku (if) a pokud platí, tak do ní potřebuji přidat vyskakovací okno, ve kterém proběhne tento cyklus:

						for ($i=0; $i <= count($allergens1); $i++) { 
							echo $allergens1[$i]."<br>";
						}

Jak to tedy udělat?

Díky, stále tu mám ale tento script, který prostě nefunguje, proč?
Tento script je daný v php v podmínce if a v echu (echo už jde vidět):

						echo '
						<script type="text/javascript">
								window.onload = function () {
									var vypis ="<?php for ($i=0; $i <= count($allergens1); $i++) { 
									    echo $allergens1[$i]\n;
									} ?>";
									alert(vypis);
								}
						</script>
						';

Celý code (podmínka) vypadá takto. Mám tam taky klasické výpisy na stránku, díky kterým jsem si ověřoval správnost polí.

					if (isset($_POST['go_allergens'])) {
						$allergen = $_POST['allergens'];
						$id = $_POST['id'];
						$allergens = explode(",", $allergen);
						$allergens1 = array();
						for ($i=0; $i < count($allergens); $i++) { 
							echo "alergeny jsou:".$allergens[$i]."<br>";
							$number = $allergens[$i];
							$dotaz = mysql_query("SELECT `allergen` FROM `allergens` WHERE `number` = '$number'");
							while ($vypis = mysql_fetch_assoc($dotaz)) {
								$allergens1[] = $vypis['allergen'];
							}
						}
						echo "Alergeny jsou:<br>";
						for ($i=0; $i <= count($allergens1); $i++) { 
							echo $allergens1[$i]."<br>";
						}
						print_r($allergens1);
						echo '
						<script type="text/javascript">
								window.onload = function () {
									var vypis ="<?php for ($i=0; $i <= count($allergens1); $i++) { 
									    echo $allergens1[$i]\n;
									} ?>";
									alert(vypis);
								}
						</script>
						';
					}

To už nevím, napsal jsme kamarádovi, který mi pomohl se správným řešením, tady je (pro budoucí návštěvníky):

					if (isset($_POST['go_allergens'])) {
						$allergen = $_POST['allergens'];
						$id = $_POST['id'];
						$allergens = explode(",", $allergen);
						$allergens1 = array();
						for ($i=0; $i < count($allergens); $i++) { 
							echo "alergeny jsou:".$allergens[$i]."<br>";
							$number = $allergens[$i];
							$dotaz = mysql_query("SELECT `allergen` FROM `allergens` WHERE `number` = '$number'");
							while ($vypis = mysql_fetch_assoc($dotaz)) {
								$allergens1[] = $vypis['allergen'];
							}
						}
						echo "Alergeny jsou:<br>";
						for ($i=0; $i <= count($allergens1); $i++) { 
							echo $allergens1[$i]."<br>";
						}
						print_r($allergens1);
						$allergensString = implode("\n", $allergens1);
						echo '
						    <script type="text/javascript">
						        window.onload = function(){
						            var vypis = ' . json_encode($allergensString) . ';
						            alert(vypis);
						        }
						    </script>
						';
					}

Zpět do poradny Odpovědět na původní otázku Nahoru