Spuštění skriptu přes JavaSkript – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Spuštění skriptu přes JavaSkript – JavaScript, AJAX, jQuery – Fórum – Programujte.comSpuštění skriptu přes JavaSkript – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Borisek0
Stálý člen
9. 9. 2014   #1
-
0
-

Dobry den.

Přes PHP se da spustit skript na linux servru.

exec('sudo  /var/www/skript');

nebo system('sudo /var/www/scripts/test.py > /dev/null &');

Jak však na to přes JavaScript.

Čet jsem že JavaScript.neumí pracovat se soubory, takže asi i toto nedokaže.

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
9. 9. 2014   #2
-
0
-

no muzes pouzit ajax a zavolat script v php na serveru pomoci js

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
9. 9. 2014   #3
-
0
-

A bez použití ajax?

Nedá se vytvořít v PHP funkce a pak ji přes JS zavolat?

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
9. 9. 2014   #4
-
0
-

bez ajaxu budes muset proste prejit na odkaz

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
9. 9. 2014   #5
-
0
-

Jak spustit PHP přes ten ajax jsem našel.

Spustím však přes něj jen funkcí.

Nahlásit jako SPAM
IP: 213.195.237.–
Matěj Andrle+1
Grafoman
10. 9. 2014   #6
-
0
-

#3 Borisek
http://stackoverflow.com/questions/1280767/how-do-i-run-php-code-when-a-user-clicks-on-a-link

Nahlásit jako SPAM
IP: 78.136.190.–
Borisek0
Stálý člen
10. 9. 2014   #7
-
0
-

No rozumnější bude tu napsat o co mi jde a možná poradíte jine řešení.
Nejsem žádný programátor .
PHP a JS jsem poprvé zkusil před 14 dny.

Koupil jsem si Raspberry Pi a začal se šprtat python, abych mohl ovládat GPA piny.
Nedávno jsem však zjistil , že se stejnými příkazy  to funguje i přes PHP.
<?php
sudo i2cset -y -m 0x02 1 0x20 0x12 0xFF  // zapnu GPA1
?>

A já bych rad docílil tohoto.

V PHP načtu do proměnné stav registru pro GPA1
$stavGPA1 = sudo i2cset -y -m 0x02 1 0x20 0x12 0xFF

Pokud je 0 chci na stránce vykreslit button s názvem ZAPNI přes který GPA1 zapnu  sudo i2cset -y -m 0x02 1 0x20 0x12 0xFF

Pokud je 1 chci na stránce vykreslit button s názvem VZPNI přes který GPA1 vypnu  sudo i2cset -y -m 0x02 1 0x20 0x12 0x00

To samé už při načtené stránce.
když kliknu na button zapni GPA1 zapnu a button se změní na vypni.
když kliknu na button vypni GPA1 vypnu a button se změní na zapni.

Poradíte prosím to nejjednodušší řešení.
Jediný problém co mam je že ty příkazy pro ovládaní pinu nefungují v JS.

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
10. 9. 2014   #8
-
0
-

dulezity je uvedomit si, kde se co spousti

JavaScript se spousti ve tvym prohlizeci, takze tezko bude volat program i2cset u tebe, kdyz ho potrebujes spustit na serveru

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
10. 9. 2014   #9
-
0
-

#8 KIIV

No to vím.

Proto při spuštěni stránky si uložím do proměnné ty hodnoty s registru v PHP.

Potom si je vytáhnu do JS

Takto vykreslím button

<script>
function changeImage() {
    var image = document.getElementById('myImage');
    if (image.src.match("bulbon")) {
        image.src = "zapni.gif";
    } else {
        image.src = "vypní.gif";
    }
}
</script>

Jen potřebují dořešit v té podmínce IF a else zavolaní nějaké PHP funkce, která by vykonala ten příkaz  i2cset -y -m 0x02 1 0x20 0x12 0xFF

Nahlásit jako SPAM
IP: 213.195.237.–
Matěj Andrle+1
Grafoman
10. 9. 2014   #10
-
0
-

#7 Borisek
Absolutně nechápu co řešíš - AJAX!

Nahlásit jako SPAM
IP: 78.136.190.–
peter
~ Anonymní uživatel
3981 příspěvků
10. 9. 2014   #11
-
0
-

Borisek :)))
Nejdriv musis pochopit, ze php bezi na serveru, js (js/ajax/jquery) v prohlizeci u uzivatele. Ty dva pc nejsou jeden! Js v prohlizevi neumi php znacky. Php neumi js. Js muze spustit na serveru soubor pomoci ajaxu a pockat, co server vrati a pak to zobrazit.
Pokud potrebujes do js kodu dosadit promenne, tak se vetsinou napise js funkce s parametry a ta se pak zavola. ty parametry pak pres echo muzes vypsat do html kodu primo a nebo si je stahnout dodatecne pres ajax.

Jak ajax funguje si muzes predstavit treba na tagu script/iframe.
<script id=aaa></script>
<span onclick=document.getElementById('aaa').src="zpracuj.php?a=1">posli 1</span>
<span onclick=document.getElementById('aaa').src="zpracuj.php?a=22">posli 22</span>

S tim tlacitkem, to je jasnej ajax pres httprequest. Ale slo by tam pouzit skryty iframe a odeslat formular v nem.
<iframe id=bbb style="display:none"></iframe>
<span onclick=fff()">posli 1</span>
function fff()
{
changeImage();
document.getElementById('bbb').src = "zpracuj.php?a=1";
}
 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:a4c1:ce...–
Borisek0
Stálý člen
10. 9. 2014   #12
-
+1
-
Zajímavé

No jo.

Přehlédli jste ale že jsem začal s PHP a JS před 14 dny a vy na mně hned Ajax.

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
10. 9. 2014   #13
-
0
-

#12 Borisek
A to bud rad, ze na teba nevytiahli websocket ;)

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
10. 9. 2014   #14
-
0
-

Srandičky jo  

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
10. 9. 2014   #15
-
0
-

#14 Borisek
To vies. 
Lahko sa to smeje, ked to robis kazdy den.
Ale nezufaj, mas pred sebou same dobre veci.

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
10. 9. 2014   #16
-
0
-

#15 Ericsko
No a tak pomoct?

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
11. 9. 2014   #17
-
0
-

#7 Borisek
Takto, obdivujem tvoju odvahu, po 14 dnoch s php a javascriptom sa pustat navyse do ovladania GPIO na RaspberryPi. Vsetko treba ale s mierou.

Co sa tyka ovladania portov: 
- pises, ze nacitas stav GPA1 prikazom: $stavGPA1 = sudo i2cset -y -m 0x02 1 0x20 0x12 0xFF
No ale tym istym prikazom nastavujes ten PIN 0xFF, takze to, co precitas bude vzdy rovnake..

Nechce sa mi teraz velmi vrtat v tom, skor by som na to isiel asi uplne inak, je tam dost dobre zdokumentovane ovladanie toho GPIO cez python, takze by som si v nom zaroven aj vytvoril socket a komunikoval z javascriptu cez websocket..

Nie je to atomova veda, ale je to omnoho vyssie, ako si iba spackat nejaku webstranku, takze ti skor doporucim, aby si kusok pribrzdil, kym neziskas aspon trosku skusenosti v tychto oblastiach.

Odporucam nastudovat:
https://learn.adafruit.com/…raspberry-pi
python, websocket, javascript, ajax

Skus to na mensich jednoduchsich prikladoch, kym pochopis princip. Toto, co si si zobral je imho velke susto.
 

Nahlásit jako SPAM
IP: 95.103.57.–
Borisek0
Stálý člen
11. 9. 2014   #18
-
0
-

#17 Ericsko
No učit se je dobra věc, ale trva to dlouho a nerad bych nechal za tu dobu sve Raspi zahalet.

Určitě se budu učit ale tád bych vyřešil první tento problem.

Zatím použivam toto

<html>
<head>
<?php
if (isset($_POST['Button1']))
{
system('sudo /var/www/scripts/zapni.py > /dev/null &');
}
if (isset($_POST['Button2']))
{
exec('sudo /var/www/scripts/vypni.py > /dev/null &');
}
?>
<title></title>
</head>
<body>
<form method="post">
  <table
 
  <tr>
  <td style="text-align: center;"><button name="Button1">První button </button></td>
   </tr>

  <tr>
    <td style="text-align: center;"><button name="Button2">Druhy button</button></td>
  </tr>    
</form>
</html>

Toto mi však nevyhovuje.

1 tlačitkem spustím 1 sktipt.

2 tlačítkem druhy.

Proto bych to rad předělal a řešil to přes JS

<script>
function changeImage() {
    var image = document.getElementById('myImage');
    if (image.src.match("bulbon")) {
        image.src = "zapni.gif";
    } else {
        image.src = "vypní.gif";
    }
}
</script>

Prvním kliknutím spustít 1 skript, druhym ten druhy.

Řek bych že pro profika co to děla každy den je to brnkačka, ne.

 

 

 

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
11. 9. 2014   #19
-
+1
-
Zajímavé

Ano. Ale mozna si pletes forum s udelejte za mne. Idealni je google a porad si sam, kdyz jsme ti rekli, co na to pouzit. Zadny takovy kod s ajaxem tam nemas a nerikal jsi, co ti v tom kodu nefunguje. tudiz to presne vyzniva jako udelejte to za mne, zadarmo, ja to pak prodam za 30.000. A priste a popriste taky.
jenze pak se nenaucis, v cem jsou zadrhele. Osobne mi prijde lepsi ten php kod. mozna bych to resil pomoci odkazu, ale v celku to vyjde nastejno.

Nahlásit jako SPAM
IP: 193.84.207.–
Borisek0
Stálý člen
11. 9. 2014   #20
-
0
-

Tak dik moc všem.

Kdybych jen tušíl že tu chodí programatoří jen za vidinou zisku, ušetříl bych si spoustu času.

Za kolik bych asi prodal udělanou stranku s 1 gombikem.

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
11. 9. 2014   #21
-
+1
-
Zajímavé

Zase si pletes todle forum s "udelame libovolnej projekt zadara".

Poradit kde mas chybu, postrcit spravnym smerem, to klidne zadara udelame.

Delat neco za tebe, na to nemame cas. (par postouchnuti tu mas, co s nima udelas, to je jen na tobe)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
11. 9. 2014   #22
-
0
-

No zustanu u těch puvodních gombiku.

Tak dik za ty rady.

Zdytečne stravene 3 dny hledaní po netu.

Nahlásit jako SPAM
IP: 213.195.237.–
Borisek0
Stálý člen
12. 9. 2014   #23
-
0
-

No nepatřím mezi ty co se vzdávají hned pří prvním neúspěchu.

Tak hledám a zkouším.

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}
//xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.open("GET","info.txt",true);

xmlhttp.send();
}
</script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>

</body>
</html>

Při kliknutí na button to zavolá funkcí loadXMLDoc, ktera je v JS.

Přes ní se načtou data s mého souboru info.txt do myDiv a vypíší.

Toto mi funguje.

Když tu nejste na to, aby jste vše udělali za mně, tak alespoň poraďte jak to upravit, aby se v té funkcí nenačítala ty data do myDiv ale spustil nějaký můj skript.

Třeba test.py  nebo test.sh

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
12. 9. 2014   #24
-
0
-

"aby se v té funkcí nenačítala ty data do myDiv ale spustil nějaký můj skript."

Co ty data nacita do mydiv? Vyhledavani v textu slova mydiv...
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Takze ten radek musis zmenit jak? Treba alert(xmlhttp.responseText)?

Nahlásit jako SPAM
IP: 193.84.207.–
Borisek0
Stálý člen
12. 9. 2014   #25
-
0
-

Jsme na spravné cestě?

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert(xmlhttp.responseText);
    }
}
xmlhttp.open("GET","test.py",true);
xmlhttp.send();
}
</script>
</head>
<body>
<button type="button" onclick="loadXMLDoc()">Request data</button>
</body>
</html>

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
12. 9. 2014   #26
-
0
-

#25 Borisek
Prosim ta, ked vkladas kod, klikni na ikonku <? (Zdrojovy kod), kto ma ten bordel lustit?

Nahlásit jako SPAM
IP: 95.103.57.–
Borisek0
Stálý člen
12. 9. 2014   #27
-
0
-

No jo, ja nevěděl.

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert(xmlhttp.responseText);
    }
}
xmlhttp.open("GET","test.py",true);
xmlhttp.send();
}
</script>
</head>
<body>
<button type="button" onclick="loadXMLDoc()">Request data</button>
</body>
</html>

Je to furt stejné.

Nespusti ho ale otevře a načte obsah .

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
12. 9. 2014   #28
-
0
-

Samozrejme, ze ti to vrati obsah suboru. Je to uplne prirodzene spravanie. Ak chces nieco spustit, potrebujes napr. webserver, ktory vie, co ma s ktorym suborom robit. Najlahsie to bude trebars vytvorit jednoduchy server v pythone a v nom ohendlovat, co ma robit, ked pride na neho poziadavka.. No a v nom si uz spustit co treba a vratit odpoved aku treba.

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
12. 9. 2014   #29
-
0
-


Toto mi normalně PHP sežere.

<?php 
system('sudo /var/www/scripts/test.py > /dev/null &');
exec('sudo python /var/www/test1.py');
?>

<?php
system ('sudo i2cset -y 1 0x20 0x01 0x00'); 
system ('sudo i2cset -y 1 0x20 0x12 0x01'); 
?>

Tak to potom vytvořít PHP s tito kodem a spouštět ho přes ten AJAX.

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
12. 9. 2014   #30
-
0
-

#29 Borisek
Uz sa k tomu blizis..

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
13. 9. 2014   #31
-
0
-

#30 Ericsko
Jako timto zpusobem?

Tak to potom vytvořít PHP s tito kodem a spouštět ho přes ten AJAX.

To se mi našte v prohližečí nova prazdna stranka, což není moc dobre.

V hide asi spustit nepujde.

A aby pro provedení skriptu se sama ukončika,asi taky ne.

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
13. 9. 2014   #32
-
0
-

#31 Borisek
Ak to zavolas cez ajax, urcite sa ti nenacita nova stranka.
Ajax je vlastne asynchronny request, cize stranka je uz prvy raz nacitana a ty z nej zavolas novy request, ktoreho obsah podstrcis tej istej stranke. Samozrejme si mozes zvolit co podstrcis a kam.
Pre zjednodusenie by som ti odporucil pouzivat napr. jquery, tam je praca s ajaxom super jednoducha (napr. nemusis riesit ziadne browser dependent vyhybky), len mu povies, do ktoreho elementu ma nacitat ktoru url.. (http://api.jquery.com/load/)
Potom uz len vhodne pripravit serverove scripty a parametre, ktore im posles, a tiez vystup, ktory ti poslu a mas to..

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
14. 9. 2014   #33
-
0
-

   

$( "#new-projects" ).load( "/1.php #projects li" );

  

Nakonec se vše vyřešilo 1 řadkem a my se tu s tým serem tyden   

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
14. 9. 2014   #34
-
0
-

#33 Borisek
Nene, ty sa ucis a my sa s tebou tesime, ze si za tyzden takto pokrocil ;)

Nahlásit jako SPAM
IP: 88.212.40.–
peter
~ Anonymní uživatel
3981 příspěvků
15. 9. 2014   #35
-
0
-

A nepsal jsem ti to uz na zacatku, ze muzes pouzit treba tag SCRIPT nebo IMG?. :)
Vubec ses nemusel trapit s js httprequest nebo svuj program zatezovat 150k jquery (ktere se da mimochodem tahat z googlu, protoze ma rychle servery).

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:e554:20...–
Borisek0
Stálý člen
25. 9. 2014   #36
-
0
-

Omlouvám se ale byl jsem pryč.

Toto jsem trochu nepochopil.

Ale už jsem o tom trochu přemýšlel proč volám PHP stránku přes to jquery.

Na druhé straně, jsem se něčemu přiučil a už přes to načítám hodnoty teploměru.

Ale proč se to jquery-1.10.2.js po každém spuštění tahá s netu.

To nejde ten skript někam uložit?

Třeba tem kde je ta stranka.

Pokud mi třeba nepojede net, nebude to fungovat, ne.

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
26. 9. 2014   #37
-
0
-

Podivej, dotaz mas polozeny ta, ze potrebujes tahat data ze serveru a ted rikas, ze data tahat nechces, ze bys musel byt pripojeny. Jak to teda je?
Tvuj pc dokaze samozrejme kesovat. Jenze requesty se kesuji dost spatne, vetsinou jsou nastavene tak, ze vubec.
jestli to teda potrebujes osetrit, tak si to vyres v js, ne? To je takovy problem udelat si pole a do nej ta data ukladat? V podmince pak das existuje index pole a neni obsah prazdny? Ano, pouzij, ne, zkus nacist ze serveru a pak pouzij.
if (arr && arr[5]) {zobraz(5);} else {stahuj_a_zobraz(5);}
A nebo si to proste vsechno stahni uz na zacatku do stranky i bez ajaxu do stranky, viz treba tady ty selekty:
http://programujte.com/…ym-selectem/#…

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:d82:2de...–
Borisek0
Stálý člen
26. 9. 2014   #38
-
0
-

No nikde ten dotaz nevidím.

Dotaz zněl, že chci spouštět  skript v prostředí  JS.

Nakonec se tu došlo k závěru, že soubor nespustím, jen načtu.

Tudíž řešeni je spustíte přes JS jinou PHP stránku, která vykoná to, co potřebují.

Jelikož PHP zvládne linuxové příkazy, takže nemusím ani žádný další python script spouštět a vše mam v té PHP.

Používám to v raspberry k ovládaní GPIO pinu.

Takže třeba jen připojen notasem nebo telefonem k routru.

Tehdy mně funkční internet nezajímá.

Nahlásit jako SPAM
IP: 213.195.237.–
Ericsko+3
Stálý člen
26. 9. 2014   #39
-
0
-

#36 Borisek
jquery si mozes ulozit lokalne a tahat ho zo servra, nie z netu.

Nahlásit jako SPAM
IP: 88.212.40.–
Borisek0
Stálý člen
3. 10. 2014   #40
-
0
-

Zdravím. 

Poradíte ještě s jediným problémem.

Takto v PHP načtu obsah registru
$register_GPA = `sudo i2cget -y 1 0x20 0x13`;

Jak však na to.

Určítě tu zas uslyším jquery   

Ale nějak to nefunguje.

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("#div1").load( `sudo i2cget -y 1 0x20 0x13`);
  });
</script>
</head>
<body>

<div id="div1"</div>
</body>
</html>

Dělám někde chybu?

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2014   #41
-
0
-

mezi klavesnici a zidli...

nejak stale nedokazes pochopit, co se kde spousti.. javascript je "client side", php je "server side". Server side ma pristup k serveru, client side nema pristup k serveru, protoze se spousti jinde nez na serveru ...

Takze musis mit neco, co ti napriklad pomoci load zavola SERVER SIDE script, ktery zavola treba to sudo i2cget

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
3. 10. 2014   #42
-
0
-

#41 KIIV
Takže pokud to dobře chapu, tak přes jquery si zavolam PHP skript, ktery tu hodnotu načte a uloží do textaku.

A pak si ho načtu.  $("#div1").load("info.txt");

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2014   #43
-
0
-

spis das   $("#div1").load("/script.php?pin=1"); a v ramci toho script.php jen vypises co chces zobrazit v tom divu...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
3. 10. 2014   #44
-
0
-

Trochu nechapu to pin=1.
Spustím script.php.
Vněm bude.  $register_GPA = `sudo i2cget -y 1 0x20 0x13`;
Jak teda tu ziskanou hodmotu předam?

Nahlásit jako SPAM
IP: 213.195.237.–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2014   #45
-
0
-

?pin=1 je pro to, abys mohl pripadne predat stejnymu scriptu ruzny zadosti.. kdyz budes mit kazdej script zvlast, tak to neni potreba...

jak predat hodnotu?   echo $register_GPA; 

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
3. 10. 2014   #46
-
0
-

#45 KIIV
echo $register_GPA;

Tak to jsem už zkoušel mezi PHP a JS.

Netušil jsem že to jde i mezi dvěma skripty.

Zas o kousek dale   

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 10. 2014   #47
-
0
-

Borisek0: http://yko.cz/smiles/7515.gif :)

Pochop, javascript je v prohlizeci. Prohlizec je u uzivatele. Takze nemuzes spoustet prikazy na serveru. Ale muzes pozadat server o stranku, php soubor. Chces spusti na serveru prikaz? V php to udelas pres exec. Ajaxem spustit ten php.

Cili, ajax je jen totez, jako kdyz do stranky napises spust js script: <script src=soubor.php></script>. Tomu php muzes rici, ze ti vrati js kod/html (pres echo) nebo taky nic.

Chces tam menit nejaky parametr? Tak klasicky GET, jako u normalniho php
<script src=soubor.php?a=1></script>
A v soubor.php pak mas
<?php
$a = $_GET['a']; // plus to zabezpecit pres isset a konkretni povolene hodnoty a nejlepe i pres heslo
exec('sudo i2cget -y '.$a.' 0x20 0x13');
?>

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:58bb:c8...–
KIIV
~ Moderátor
+43
God of flame
3. 10. 2014   #48
-
0
-

load slouzi pro nacteni vseho, co se vrati ze scriptu v nem volanem, do elementu, ktery sis urcil

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Borisek0
Stálý člen
3. 10. 2014   #49
-
0
-

No abch se přiznal, mam s toho v palicí jak po flamu   

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 10. 2014   #50
-
0
-

Proc? udelej si php soubor, ktery bys normalne ovladal pres odkazy <a>. A pak misto odkazu pouzijes js jqeury load.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:58bb:c8...–
Borisek0
Stálý člen
3. 10. 2014   #51
-
0
-

No nějak to nechapu,to bude tim že je patulek   

Mam soubor Nacti.php

V něm je.

<?php
$register_GPA = `sudo i2cget -y 1 0x20 0x13`;
?>

Ted ho chcí spustít přes ten jqeury load

$("#div1").load("/Nacti.php");

Ale furt nemužu pochopít jak dostanu tu ziskanou hodnotu
$register_GP do toho druheho PHP
 

Nahlásit jako SPAM
IP: 213.195.237.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 10. 2014   #52
-
0
-

Mozna mrknout do dokumentace http://api.jquery.com/load/

$( "#result" ).load( "ajax/test.html", function() {
alert( "Load was performed." );
});

$( "#result" ).load( jmenosouboru, navratova funkce po skonceni stahovani - Callback Function);

Pripadne muzes jit primo pres GET http://api.jquery.com/jQuery.get/

$.get( "ajax/test.html", function( data ) {
$( ".result" ).html( data );
alert( "Load was performed." );
});

$.get( "soubor.php", function( data ) {
  $.get( "soubor2.php?a="+data, function( data2 ) {
     $( "div1" ).html( data2 );
  })
alert( "Load was performed." );
});

Pripadne to druhe php volat primo z toho prvniho, pres include.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:58bb:c8...–
peter
~ Anonymní uživatel
3981 příspěvků
3. 10. 2014   #53
-
0
-

Jo, pozor, to jsem napsal zjednodusene. Netusim, jaky vypis dostanes z toho php, ale tam je treba to pak sifrovat pres serialize. Navic, get ma limit tusim 1MB , mozna lepsi pouzit POST, ktery miva defaultne v php nastavenych 8MB textu.
http://api.jquery.com/jQuery.post/

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:58bb:c8...–
Borisek0
Stálý člen
3. 10. 2014   #54
-
0
-

http://jquery-navod.cz/kategorie-ajax/9-ajax

Tak tady je to pro uplné lamy jako já   

Nahlásit jako SPAM
IP: 213.195.237.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý