Diskuze: Pridanie js do php
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 26 zpráv z 26.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Dej si facku a pak vlož JS přes externí soubor do hlavičky nebo před
zavírací tag body
<?php
echo"<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=utf-8\">
<head><link rel=\"stylesheet\" type=\"text/css\"
href=\"multi_css.css\"></head> ";
echo"<section class=\"container\">
<div>
<select id=\"leftValues\" size=\"5\" multiple></select>
</div>
<div>
<input type=\"button\" id=\"btnLeft\" value=\"<<\" />
<input type=\"button\" id=\"btnRight\" value=\">>\" />
</div>
<div>
<select id=\"rightValues\" size=\"4\" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<div>
<input type=\"text\" id=\"txtRight\" />
</div>
</div>
</section></body>";
echo"<sctript>$(\"#btnLeft\").click(function () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#leftValues\").append(selectedItem);
});
$(\"#btnRight\").click(function () {
var selectedItem = $(\"#leftValues option:selected\");
$(\"#rightValues\").append(selectedItem);
});
$(\"#rightValues\").change(function () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#txtRight\").val(selectedItem.text());
});</script>";
Doplnil som to a aj tak to nefunguje
Používej tlačítko "CODE", aby se ten kód dal lépe luštit a
</body>
musí být až za
</script>
na konci
a
<script></script>
se podle mě dělá bez "echa"
Nemozes mi to ukazat ako priblizne to spravim ?
<?php
echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<head><link rel=\"stylesheet\" type=\"text/css\" href=\"multi_css.css\">
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js\"></script>
</head> ";
echo"<section class=\"container\">
<div>
<select id=\"leftValues\" size=\"5\" multiple></select>
</div>
<div>
<input type=\"button\" id=\"btnLeft\" value=\"<<\" />
<input type=\"button\" id=\"btnRight\" value=\">>\" />
</div>
<div>
<select id=\"rightValues\" size=\"4\" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<div>
<input type=\"text\" id=\"txtRight\" />
</div>
</div>
</section>";
echo"<script>$(\"#btnLeft\").click(function () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#leftValues\").append(selectedItem);
});
$(\"#btnRight\").click(function () {
var selectedItem = $(\"#leftValues option:selected\");
$(\"#rightValues\").append(selectedItem);
});
$(\"#rightValues\").change(function () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#txtRight\").val(selectedItem.text());
});</script></body>";
Vzhledem k tomu, že žádné php tam zatím není, tak ideálně takto:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="multi_css.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<section class="container">
<div>
<select id="leftValues" size="5" multiple></select>
</div>
<div>
<input type="button" id="btnLeft" value="<<">
<input type="button" id="btnRight" value=">>">
</div>
<div>
<select id="rightValues" size="4" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<div>
<input type="text" id="txtRight" />
</div>
</div>
</section>
<script>
$("#btnLeft").click(function () {
var selectedItem = $("#rightValues option:selected");
$("#leftValues").append(selectedItem);
});
$("#btnRight").click(function () {
var selectedItem = $("#leftValues option:selected");
$("#rightValues").append(selectedItem);
});
$("#rightValues").change(function () {
var selectedItem = $("#rightValues option:selected");
$("#txtRight").val(selectedItem.text());
});
</script>
</body>
No vlastne pridanim toho riadku
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js\"></script>
to funguje .... co to vlastne robi ???
V tom kódu používáš jQuery knihovnu - její funkce, ale nemáš jí tam nahranou, takže ty funkce se neprovedou. Ten kód knihovnu nahraje a používá jí.
A tuto mi tiez chyba nejaka kniznica aby to fungovalo ?
<?php
echo"<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=utf-8\">
<head></head><body>";
echo"<script language=\"JavaScript\" type=\"text/javascript\">
function ajax_post(){
var hr = new XMLHttpRequest();
var url = \"skuska_ajax1.php\";
var fn = document.getElementById(\"meno\").value;
var ln = document.getElementById(\"priezvisko\").value;
var vars = \"meno=\"+fn+\"&priezvisko=\"+ln;
hr.open(\"POST\", url, true);
hr.setRequestHeader(\"Content-type\",
\"application/x-www-form-urlencoded\");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById(\"status\").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById(\"status\").innerHTML = \"processing...\";
}
</script>";
echo"<center>
<table style=\"margin-top:30px;\">
<tr><td
style=\"height:30px;\">Meno:</td><td><input
type=\"text\" name=\"meno\"><td></tr>
<tr><td
style=\"height:30px;\">Priezvisko:</td><td><input
type=\"text\" name=\"priezvisko\"><td></tr>
<tr><td style=\"height:30px;\"></td><td><input
class=\"btn-style\" type=\"submit\" value=\"Hľadaj\"
onclick=\"ajax_post()\"></td></tr>";
echo"
</table>
</center>
</body>";
?>
U document.getElementById odstraň to .value
A nikde tam nemáš element "status"
Tak jelikož do toho elementu vkládáš nějaká data, tak by to tam být mělo.
<?php
echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<head></head><body>";
echo"<script language=\"JavaScript\" type=\"text/javascript\">
function ajax_post(){
var hr = new XMLHttpRequest();
var url = \"skuska_ajax1.php\";
var fn = document.getElementById(\"meno\");
var ln = document.getElementById(\"priezvisko\");
var vars = \"meno=\"+fn+\"&priezvisko=\"+ln;
hr.open(\"POST\", url, true);
hr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById(\"status\").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById(\"status\").innerHTML = \"processing...\";
}
</script>";
echo"<center>
<table style=\"margin-top:30px;\">
<tr><td style=\"height:30px;\">Meno:</td><td><input type=\"text\" name=\"meno\"><td></tr>
<tr><td style=\"height:30px;\">Priezvisko:</td><td><input type=\"text\" name=\"priezvisko\"><td></tr>
<tr><td style=\"height:30px;\"></td><td><input class=\"btn-style\" type=\"submit\" value=\"Hľadaj\" onclick=\"ajax_post()\"></td></tr>";
echo"
</table>
<div id=\"status\"></div>
</center>
</body>";
?>
Vkládat js přímo do kódu je podle mě zbytečné a hlavně nepřehledné, když se tam motá několik jazyku dohromady.
Prostě všechny JS scripty ulož do externího souboru (bez
<script></script>
) např. skripty.js
a po <body> nebo před </body> ho připoj, pomoci
<script type="text/javascript" src="./skripty.js"></script>
Podle mě je nejpřehlednější umístit ho do hlavičky. Všeobecně se to
tak používá, každopádně v body může být také
Jejda! Tak ja ti odporučim znovu si preštudovať tutoriály na HTML - http://www.itnetwork.cz/…-tvorbu-webu
Potom tutoriály pre PHP - http://www.itnetwork.cz/…ogramy-v-php a JavaScriptu - http://www.itnetwork.cz/…ky-tutorialy
To by si urobil najlepšie, keďže sa tomu zjavne nerozumieš
No funguje to len neodosiela to co napisem do mena a priezviska ale je tam null a null u oboch
Před ukončovací tag body se JS vkládal kvůli prohlížečům, které neumí externí soubory načíst stránku asynchronně.
Chybí ti naprosté základy, nemá význam lepit aplikaci z něčeho, čemu nerozumíš. Doporučuji si je doplnit a pak se ptát. Zavírám.
Zobrazeno 26 zpráv z 26.