Wywołanie funkcji php z parametrami w AJAX

Wywołanie funkcji php z parametrami w AJAX
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

Witam,
Chcę po kliknięciu w przycisk wywołać plik php który powiedzmy wykona dodawanie dwóch liczb, liczby mogą być różne więc, nie możemy podać jako parametry konkretnych wartości, tylko podać dwie zmienne pod którymi będą się kryć różne wartości. Załóżmy że są to zmienne $a i $b. Chcę ję przesłać do ajax więc zamieniam na js przypisując odpowiednio var a = $a, var b = $b;

Kopiuj
$a=5;
$b=7;

<button id="klik">przycisk</button>

print "<script type="text/javascript"><!--\n";
print "var a = $a";
print "var b = $b";
print "//--></script>\n";
Kopiuj
<script> 
$(document).ready(function(){
			$("#klik").click(function(){
				$.ajax({url: "wywolaj.php",
				data :{a,b},
				type: 'post'});
			});
		});
 </script>

plik wywolaj.php:

Kopiuj
$a =$_POST['a'];
$b =$_POST['b'];

function suma($a,$b)
{
$s= ($a+$b);
}

Chcę aby ta funkcja dodała te dwie wartości. Jak to zrobić?

0

$a =$_POST['a'];
$b =$_POST['b'];

function suma($a,$b)
{
return $a + $b;
}

suma($a,$b);

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Świetny Programista napisał(a):

$a =$_POST['a'];
$b =$_POST['b'];

function suma($a,$b)
{
return $a + $b;
}

suma($a,$b);

Nie działa. Problem leży gdzieś indziej

TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:700m n.p.m.
  • Postów:677
0
Kopiuj
data :{a:a,b:b},

DRY > SOLID (nie bierz tego zbyt poważnie)
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
TomRZ napisał(a):
Kopiuj
data :{a:a,b:b},

Również nie działa

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:9 dni
  • Postów:644
0

Zdefiniuj "nie działa". Biała strona? Jakieś błędy? Konsola przeglądarki (zakłada sieć) zwraca 200?

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Markuz napisał(a):

Zdefiniuj "nie działa". Biała strona? Jakieś błędy? Konsola przeglądarki (zakłada sieć) zwraca 200?

Zmienne a i b nie przesyłają się do pliku wywolaj.php

drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
1

Robisz np. tak, choć zastanawiam się po co się bawić w AJAX w tym przypadku:

wywolaj.php

Kopiuj
<?php

$a = isset($_POST['a']) ? $_POST['a'] : 0;
$b = isset($_POST['b']) ? $_POST['b'] : 0;

function suma($a, $b)
{
  return $a + $b;
}

echo suma($a, $b);

oraz index.php

Kopiuj
<?php
$a = 2;
$b = 3;
?>
<!DOCTYPE html>
<html>
  <body>
    <button>Click</button>
    <p></p>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'a': <?= $a ?>,
                    'b': <?= $b ?>
                },
                dataType: 'text'
            }).done(function(data) {
                $('p').html(data);
            });
        });
    </script>
  </body>
</html>

Równie dobrze prostym sposobem można sobie zrobić kalkulatorek działający po stronie przeglądarki więc po co się tak bawić?

index.html

Kopiuj
<!DOCTYPE html>
<html>
<body>
    A: <input type="text" data-bind="value: a, valueUpdate: 'afterkeydown'" /><br>
    B: <input type="text" data-bind="value: b, valueUpdate: 'afterkeydown'" /><br>
    C: <span data-bind="text: c"></span>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
    <script>
        function ViewModel(a, b) {
            this.a = ko.observable(a);
            this.b = ko.observable(b);
            this.c = ko.pureComputed(function() {
                return Number(this.a()) + Number(this.b());
            }, this);
        };

        ko.applyBindings(new ViewModel(0, 0));
    </script>
</body>
</html>
Patryk27
Nie wydaje mi się, że podawanie kodu w obcym frameworku będzie pomocne pytaczowi ;-)
asdf42
Potwierdzam, będzie pomocne ;-)
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
drorat1 napisał(a):
Kopiuj
<!DOCTYPE html>
<html>
<body>
    A: <input type="text" data-bind="value: a, valueUpdate: 'afterkeydown'" /><br>
    B: <input type="text" data-bind="value: b, valueUpdate: 'afterkeydown'" /><br>
    C: <span data-bind="text: c"></span>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
    <script>
        function ViewModel(a, b) {
            this.a = ko.observable(a);
            this.b = ko.observable(b);
            this.c = ko.pureComputed(function() {
                return Number(this.a()) + Number(this.b());
            }, this);
        };

        ko.applyBindings(new ViewModel(0, 0));
    </script>
</body>
</html>

A jak bym chciał przesłać wartość z pola teksowego ajaxem do pliku wywolaj.php:

Kopiuj

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'wartosc': this.a
                },
            })
        });
    </script>

To jak powinno się podać ten argument? bo this.a nie przekazuje...

edytowany 1x, ostatnio: asdf42
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
1

Wklejam ostatni raz, nie wiem też czy w ogóle załapiesz działanie, zwłaszcza na czym polega two-way binding, faktycznie może kiepski pomysł, o ile tą bibliotekę można nazwać frameworkiem:

Kopiuj
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF8" />
    </head>
<body>
    <input type="text" data-bind="value: a" />
    <input type="text" data-bind="value: b" />
    <button data-bind="click: evaluate">=</button>
    <span data-bind="text: c"></span>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
    <script>
        var ViewModel = function() {
            var self = this;
            self.a = ko.observable(0);
            self.b = ko.observable(0);
            self.c = ko.observable(0);

            self.evaluate = function() {
                $.ajax({
                    url: 'wywolaj.php',
                    type: 'POST',
                    data: {
                        'a': self.a(),
                        'b': self.b()
                    },
                    dataType: 'text'
                }).done(function(data) {
                    self.c(data);
                });
            };
        };

        ko.applyBindings(new ViewModel());
    </script>
</body>
</html>

Ale podstawa do opanowania tej biblioteki która tylko współpracuje z jQuery jest tutaj:
http://learn.knockoutjs.com/
http://knockoutjs.com/examples/

Bez tego to nawet nie próbuj dalszych zabaw

edytowany 3x, ostatnio: drorat1
Paweł Antyporowicz
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
1

Masz problem w zapytaniu ajax. Zacznij korzystać z dokumentacji http://api.jquery.com/jquery.ajax/

Zamiast:

Kopiuj
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'zmienna': wartość                },
            })
        });

Powinno być **method ** zamiast type

Kopiuj
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                method: 'POST',
                data: {
                     'zmienna': wartość    
                },
            })
        });
edytowany 2x, ostatnio: Paweł Antyporowicz
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
drorat1 napisał(a):

oraz index.php

Kopiuj
<?php
$a = 2;
$b = 3;
?>
<!DOCTYPE html>
<html>
  <body>
    <button>Click</button>
    <p></p>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'a': <?= $a ?>,
                    'b': <?= $b ?>
                },
            })
        });
    </script>
  </body>
</html>

Da się jakoś przyspieszyć czas przekazywania tych zmiennych, jest jakiś szybszy sposób? Bo jeśli wykonuje plik wykonaj.php z już przypisanymi wartościami to on wykonuje się w około 2 sekundy, natomiast z powyższym kodem gdzie klikam w przycisk i przekazuje te zmienne to wykonuje się całość od kliknięcia łącznie 15 sekund, znaczy kod dalej wykonuje się 2 sekundy tylko od kliknięci to długo trwa bo te zmienne się długo przekazują. Da się coś z tym zrobić?

edytowany 1x, ostatnio: asdf42
Paweł Antyporowicz
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
0

Nie mieszaj w ten sposób języków!!!
Poza tym jak chcesz zmierzyć czas wykonania funkcji to w PHP masz funkcje http://php.net/manual/en/function.microtime.php, która daje timestampa i możesz wyliczyć ile czasu zajmuje funkcja.
Nie wiem jaką implementacje funkcji masz w tym pliku php to nie za bardzo Ci pomogę, czy można tą funkcje przyspieszyć.

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Paweł Antyporowicz napisał(a):

Nie wiem jaką implementacje funkcji masz w tym pliku php to nie za bardzo Ci pomogę, czy można tą funkcje przyspieszyć.

Ja chcę przyspieszyć przekazanie zmiennych do pliku wykonaj.php, bo sam kod który jest w pliku wywolaj.php wykonuje sie w takim samym czasie. Tylko to przekazanie trwa około 13 sekund, a mierze to tak:

Kopiuj
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'a': <?= $time1=time() ?>
                },
            })
        });
    </script>

a plik wywolaj.php

Kopiuj
<?php
 
$a = isset($_POST['a']) ? $_POST['a'] : 0;
$time2 = time();

echo ($time2-$time1);

//moj kod

?>

I takie przekazanie wykonuje 13 sekund i chce to przyspieszyć, tylko jak?

asdf42
czyli zanim się zacznie mój kod wykonywać upływa około 13 sekund-czas przekazania zmiennych
Paweł Antyporowicz
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
0
Kopiuj
    <script>
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'a': <?= $time1=time() ?>
                },
            })
        });
    </script>

Tutaj masz błąd. Mówiłem nie mieszaj kodów.
Czas, który Ci się wygenerował w tej funkcji jest wartością w tym momencie w którym wygenerował się widok strony...
Do timestampu w JS wykorzystaj funkcje

Kopiuj
new Date().getTime()

wtedy momencie wysłania zapytania Ajax wygeneruje Ci się odpowiednia wartość czasu unixowego.

edytowany 1x, ostatnio: Paweł Antyporowicz
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

Skoro mam nie mieszać języków to jak to powinienem przekazać?

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Paweł Antyporowicz napisał(a):
Kopiuj

Czas, który Ci się wygenerował w tej funkcji jest wartością w tym momencie w którym wygenerował się widok strony...

Kopiuj

Co nie zmienia faktu, że mój kod zaczyna się wywoływać po tym czasie...czyli jest to za długo

Paweł Antyporowicz
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
0

Dałem rozwiązanie prawie jak na tacy:
Tak twoja funkcja ajax powinna wyglądać:

Kopiuj
<script>
 var timeStampInMs = function () { 
return window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();
}

        $('button').click(function() {
             $.ajax({
                 url: 'wywolaj.php',
                type: 'POST',
                 data: {
                   'a': timeStampInMs();
               },
             })
        });
</script>

A tak funkcja php, która Ci pokaże czas przesłania żądania:

Kopiuj
<?php
$time2 = microtime(true);
$a = isset($_POST['a']) ? $_POST['a'] : 0;

 
echo ($time2 - $time1);
 

asdf42 napisał(a):

Skoro mam nie mieszać języków to jak to powinienem przekazać?

edytowany 2x, ostatnio: Paweł Antyporowicz
asdf42
powinno być echo ($time2 - $a); ale i tak nie chodzi...
Paweł Antyporowicz
Edytowane. Zapomniałem zwrócić wartość w funkcji.
asdf42
Dalej nie działa, odpal sobie i zobacz
asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0

Ale ja chce przekazać zmienne z php

Jak to powinienem zastąpić żeby nie mieszać języków a przekazać zmienne z php?
Jak to zastąpić?

Kopiuj
...
data: {
                    'a': <?= $a ?>,
                    'b': <?= $b ?>
                },
....
Paweł Antyporowicz
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
0

Możesz zapisać dane w np: ukrytym inpucie a później je pobrać. Zamiast tak mieszać kod.

Kopiuj
<input type="hidden" value="<?php $zmiennaX ?>" id="zmiennaX">

var zmiennaX = document.getElementById("zmiennaX").value;

asdf42
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:136
0
Paweł Antyporowicz napisał(a):

Możesz zapisać dane w np: ukrytym inpucie a później je pobrać. Zamiast tak mieszać kod.

Kopiuj
<input type="hidden" value="<?php $zmiennaX ?>" id="zmiennaX">

var zmiennaX = document.getElementById("zmiennaX").value;

Nie działa takie przekazanie

Kopiuj
<button>klik</button>
<input type="hidden" value="<?php $zmiennaX =66; ?>" id="zmiennaX">
<script>
	var zmiennaX = document.getElementById("zmiennaX").value;
        $('button').click(function() {
            $.ajax({
                url: 'wywolaj.php',
                type: 'POST',
                data: {
                    'a':  zmiennaX
                },
            })
        });
    </script>
Paweł Antyporowicz
Brakuje funkcji echo w inputcie... <?php echo $zmiennaX =66; ?>
asdf42
też nie działa
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

Jezu Chryste co Ty kombinujesz??? Podałem wcześniej jak na tacy:

https://4programmers.net/Forum/1458358
https://4programmers.net/Forum/1458780

Najwyżej zrób download jQuery oraz opcjonalnie KnockoutJS i zamiast wczytywać to z zewnętrznych serwerów, wczytaj to z podkatalogu Twojego projektu, zapisując wcześniej te biblioteki.

A tak w ogóle to po co do takich pierdół jak sumowanie bawić się jeszcze w AJAX skoro wszystko można załatwić w samej przeglądarce???

Kopiuj
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF8" />
    </head>
<body>
    A: <input type="text" data-bind="value: a, valueUpdate: 'afterkeydown'" /><br>
    B: <input type="text" data-bind="value: b, valueUpdate: 'afterkeydown'" /><br>
    C: <span data-bind="text: c"></span>
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
    <script>
        function ViewModel(a, b) {
            this.a = ko.observable(a);
            this.b = ko.observable(b);
            this.c = ko.pureComputed(function() {
                return Number(this.a()) + Number(this.b());
            }, this);
        };
 
        ko.applyBindings(new ViewModel(0, 0));
    </script>
</body>
</html>
edytowany 2x, ostatnio: drorat1
asdf42
Sumowanie to tylko przykład, chodziło mi o przekazanie tylko tych zmiennych, ja inne działania wykonuje na tych zmiennych. Oczywiście twoje przykłady działają tylko zapytałem czy da się to jakoś przyspieszyć bo samo to przekazanie trwa 13 sekund i to jest troche za długo ...
drorat1
To zrób download jQuery i zapisz na dysku i z localhosta wczytaj i napisz co się dzieje. Dziwne to żeby POST trwał 13s. Tu nie ma co przyspieszać bo w kodzie jest tak jak się używa jQuery albo Knockout i mam z tym na co dzień do czynienia.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)