Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Pridanie js do php

Aktivity
Avatar
Tayson
Člen
Avatar
Tayson:29.9.2014 21:30

Ahoj
Viete mi pomoct ohladom pridania JS do PHP.... robim si multiselect a nefungujem JS v PHP a kod vyzera takto :

<?php
echo"<meta http-equiv=\"Content-Type\" content=\"tex­t/html; charset=utf-8\">
<head><link rel=\"stylesheet\" type=\"text/css\" href=\"multi_css­.css\"></head> ";

echo"<section class=\"conta­iner\">
<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"$(\"#btn­Left\").click(fun­ction () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#leftValu­es\").append(se­lectedItem);
});

$(\"#btnRight\")­.click(functi­on () {
var selectedItem = $(\"#leftValues option:selected\");
$(\"#rightValu­es\").append(se­lectedItem);
});

$(\"#rightValu­es\").change(fun­ction () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#txtRight\")­.val(selectedI­tem.text());
});";

?>

Vsetko robim v PHP subore a potrebujem aby ten JS isiel. Dakujem za odpovede

 
Odpovědět
29.9.2014 21:30
Avatar
Odpovídá na Tayson
Neaktivní uživatel:29.9.2014 21:32

Dej si facku a pak vlož JS přes externí soubor do hlavičky nebo před zavírací tag body :)

Nahoru Odpovědět
29.9.2014 21:32
Neaktivní uživatelský účet
Avatar
Honza Bittner
Tvůrce
Avatar
Nahoru Odpovědět
29.9.2014 21:32
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Richard
Člen
Avatar
Richard:29.9.2014 21:35

Chybí

<script></script>
Nahoru Odpovědět
29.9.2014 21:35
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Odpovídá na Richard
Neaktivní uživatel:29.9.2014 21:36

I tak, za body by to nemělo fungovat.

Nahoru Odpovědět
29.9.2014 21:36
Neaktivní uživatelský účet
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 21:43

<?php
echo"<meta http-equiv=\"Content-Type\" content=\"tex­t/html; charset=utf-8\">
<head><link rel=\"stylesheet\" type=\"text/css\" href=\"multi_css­.css\"></head> ";

echo"<section class=\"conta­iner\">
<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>$(\"#btnLef­t\").click(fun­ction () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#leftValu­es\").append(se­lectedItem);
});

$(\"#btnRight\")­.click(functi­on () {
var selectedItem = $(\"#leftValues option:selected\");
$(\"#rightValu­es\").append(se­lectedItem);
});

$(\"#rightValu­es\").change(fun­ction () {
var selectedItem = $(\"#rightValues option:selected\");
$(\"#txtRight\")­.val(selectedI­tem.text());
});</script>";

Doplnil som to a aj tak to nefunguje

 
Nahoru Odpovědět
29.9.2014 21:43
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:29.9.2014 21:48
  1. Poslechnout ještě Jirku
  2. Nechybí ti tam náhodou jQuery?
Nahoru Odpovědět
29.9.2014 21:48
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Odpovídá na Tayson
Michal Štěpánek:29.9.2014 22:02

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"

Editováno 29.9.2014 22:04
Nahoru Odpovědět
29.9.2014 22:02
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Tayson
Člen
Avatar
Odpovídá na Neaktivní uživatel
Tayson:29.9.2014 22:02

Nemozes mi to ukazat ako priblizne to spravim ?

 
Nahoru Odpovědět
29.9.2014 22:02
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:29.9.2014 22:07
<?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>";
Editováno 29.9.2014 22:07
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
29.9.2014 22:07
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Odpovídá na Tayson
Neaktivní uživatel:29.9.2014 22:11

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="&lt;&lt;">
            <input type="button" id="btnRight" value="&gt;&gt;">
        </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>
Editováno 29.9.2014 22:13
Nahoru Odpovědět
29.9.2014 22:11
Neaktivní uživatelský účet
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 22:15

No vlastne pridanim toho riadku

<script src=\"//ajax.go­ogleapis.com/a­jax/libs/jque­ry/1.11.1/jqu­ery.min.js\"></scrip­t>

to funguje .... co to vlastne robi ???

 
Nahoru Odpovědět
29.9.2014 22:15
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:29.9.2014 22:16

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í.

Nahoru Odpovědět
29.9.2014 22:16
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 22:43

A tuto mi tiez chyba nejaka kniznica aby to fungovalo ?

<?php

echo"<meta http-equiv=\"Content-Type\" content=\"tex­t/html; charset=utf-8\">
<head></head><bo­dy>";

echo"<script language=\"Ja­vaScript\" type=\"text/ja­vascript\">
function ajax_post(){
var hr = new XMLHttpRequest();
var url = \"skuska_ajax1­.php\";
var fn = document.getE­lementById(\"me­no\").value;
var ln = document.getE­lementById(\"pri­ezvisko\").va­lue;
var vars = \"meno=\"+fn+\"&­priezvisko=\"+ln;
hr.open(\"POST\", url, true);
hr.setRequestHe­ader(\"Content-type\", \"application/x-www-form-urlencoded\");
hr.onreadysta­techange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getE­lementById(\"sta­tus\").innerHTML = return_data;
}
}
hr.send(vars);
document.getE­lementById(\"sta­tus\").innerHTML = \"processing...\";
}
</script>";

echo"<center>
<table style=\"margin-top:30px;\">
<tr><td style=\"height:30px;\">M­eno:</td><td>­<input type=\"text\" name=\"meno\"><td></t­r>
<tr><td style=\"height:30px;\">P­riezvisko:
</td><td>­<input type=\"text\" name=\"priezvis­ko\"><td></tr>
<tr><td style=\"height:30px;\"><­/td><td><input class=\"btn-style\" type=\"submit\" value=\"Hľadaj\" onclick=\"ajax_pos­t()\"></td></tr>";
echo"
</table>
</center>
</body>";

?>

 
Nahoru Odpovědět
29.9.2014 22:43
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 22:43

Pretoze mi to tiez nefunguje ako volanie java funkcie

 
Nahoru Odpovědět
29.9.2014 22:43
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:29.9.2014 23:00

U document.getE­lementById odstraň to .value
A nikde tam nemáš element "status"

Nahoru Odpovědět
29.9.2014 23:00
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 23:02

A treba to tam niekde ?

 
Nahoru Odpovědět
29.9.2014 23:02
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:29.9.2014 23:17

Tak jelikož do toho elementu vkládáš nějaká data, tak by to tam být mělo.

Nahoru Odpovědět
29.9.2014 23:17
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:29.9.2014 23:21

Ale vôbec neviem co máš na mysli a kde by to malo byt

 
Nahoru Odpovědět
29.9.2014 23:21
Avatar
Richard
Člen
Avatar
Richard:29.9.2014 23:24
<?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>";

?>
Editováno 29.9.2014 23:24
Nahoru Odpovědět
29.9.2014 23:24
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Neaktivní uživatel:29.9.2014 23:44

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>
Editováno 29.9.2014 23:45
Nahoru Odpovědět
29.9.2014 23:44
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Maňhal:30.9.2014 0:15

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é :-)

 
Nahoru Odpovědět
30.9.2014 0:15
Avatar
Odpovídá na Tayson
Matúš Petrofčík:30.9.2014 1:51

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š ;)

Nahoru Odpovědět
30.9.2014 1:51
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:30.9.2014 9:15

No funguje to len neodosiela to co napisem do mena a priezviska ale je tam null a null u oboch

 
Nahoru Odpovědět
30.9.2014 9:15
Avatar
Odpovídá na Tomáš Maňhal
Neaktivní uživatel:30.9.2014 9:20

Před ukončovací tag body se JS vkládal kvůli prohlížečům, které neumí externí soubory načíst stránku asynchronně.

Editováno 30.9.2014 9:20
Nahoru Odpovědět
30.9.2014 9:20
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:30.9.2014 9:43

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.

Nahoru Odpovědět
30.9.2014 9:43
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Tato diskuze byla označena moderátorem jako nekonstruktivní a myslíme si, že nemá pro veřejnost příliš vysokou hodnotu. Členy můžete samozřejmě stále oslovit soukromě a to formou zpráv nebo chatu.

Zobrazeno 26 zpráv z 26.