Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonanie skryptu php bez przeładowania całej strony
Forum PHP.pl > Forum > XML, AJAX > AJAX
Majcon
Witam posiadam taki kod
  1. $data .= trim(addslashes($_POST['data']));
  2. if(!empty($data)) {
  3. $czas = strtotime($data);
  4. $czas1 = $czas+86400;
  5. $sel = $db->query("SELECT * FROM `ggczat_log` WHERE `kanal` = '{$canal}' AND `last` > '{$czas}' AND `last` < '{$czas1}' ORDER BY `last` ASC");
  6. if($sel->num_rows != 0){
  7. while($row = $sel->fetch_assoc())
  8. {
  9. $czas = date("d.m.Y G:i:s", $row['last']);
  10. $log .= "<br><b>".htmlspecialchars($row['nick'])."</b> {{$czas}} ".htmlspecialchars($row['log']);
  11. }
  12. }else{
  13. $log = "<font color='red'><b>Brak logów</b></font>";
  14. }
  15. }
ten kod po wybraniu daty i kliknieciu szukaj pobiera nick czas i wiadomości z podanego dnia

problem jest w tym że aby to się wykonało trzeba odświeżyć całą stronę a chciałbym żeby po kliknieciu szukaj zaladowalo zmienną $log do <div id="bla"></div> bez przeladowywania strony

p.s. nie znam w ogóle ajaxu ;p
Szymciosek
http://www.webdeveloper.com/forum/showthre...t-data-from-php

Pobiera dane z php, po kliknięciu możesz to dać w taki kod:
Kod
$('#element').click(function() {
    //tutaj kod ajax i w success wrzucasz:
    $('#field').text('text');
});
Majcon
ech i tak dalej nie rozumie i nie wiem-_-
pyro
jquery.com -> $.ajax -> success
PrinceOfPersia
Cytat
problem jest w tym że aby to się wykonało trzeba odświeżyć całą stronę a chciałbym żeby po kliknieciu szukaj zaladowalo zmienną $log do <div id="bla"></div> bez przeladowywania strony

p.s. nie znam w ogóle ajaxu ;p

to nie zrobisz. Daruj sobie. Ajax jest przereklamowany i nie wszystkie strony muszą go posiadać. Jeśli nie znasz ajaxa/JS i nie chcesz poznać, to nie rób. PHP + lekki HTML też ma rację bytu dzisiaj i potrafi szybszy być niż ajax.
nospor
Cytat
nie wiem jak nazwać
Jakbyś pomyślał, to byś wiedział. Nie chcesz chyba bym użył motywacji w postaci zamknięcia wątku? Poproszę na PW poprawny tytuł, bo już sam zapewne nie możesz edytować.

Skoro nie znasz w ogóle ajax, a chcesz go użyć, to się go naucz. Teraz to nie to samo co 5 lat temu, że nie było o tym żadnych informacji. Teraz są pęczki tutków, pęczki przykładów, pęczki bibliotek, które AJAX sprowadzają do dwóch linijek kodu.

Zainteresuj się jQuery i wróć gdy będziesz miał konkretny problem
Qleer
Cytat(PrinceOfPersia @ 18.04.2013, 09:51:19 ) *
to nie zrobisz. Daruj sobie. Ajax jest przereklamowany i nie wszystkie strony muszą go posiadać. Jeśli nie znasz ajaxa/JS i nie chcesz poznać, to nie rób. PHP + lekki HTML też ma rację bytu dzisiaj i potrafi szybszy być niż ajax.

PHP + lekki HTML potrafi być szybszy niż ajax facepalmxd.gif
PrinceOfPersia
Cytat(Qleer @ 18.04.2013, 15:21:47 ) *
PHP + lekki HTML potrafi być szybszy niż ajax facepalmxd.gif

no niestety, wiele rozdmuchanych serwisów ajaxowych, zamula bardziej niż proste stronki oparte o HTML i PHP, które wczytują się czasem w ułamek sekundy (a ajax potrafi zamulać z kilka sekund).

oczywiście winę ponosi nie ajax, a raczej mnóstwo dołączanych skryptów JS, mnóstwo styli CSS, i rozbuchany HTML - ale mimo wszystko. Więc jeśli założyciel tego tematu robi formularz, i gdzieś przeczytał, że AJAX może przyśpieszyć mu stronę, ale nie chce mu się uczyć AJAXa, to zawsze może np. odchudzić i zoptymalizować stronę (skoro AJAX jest i tak poza jego zasięgiem, skoro go nie umie, i zapewne nie chce mu się go uczyći)
nospor
Cytat
i gdzieś przeczytał, że AJAX może przyśpieszyć mu stronę
Autor nic nie wspominał o żadnym przyspieszeniu. Autor poprostu chce to mieć bez przeładowania strony. Nic o szybkości nie wspomina.

I już samo wywołanie ajax dla wyszukiwania będzie szybsze niż wyszukiwanie z przeladowaniem strony.
Majcon
Witam nazwa tematu "Wykonanie skryptu php bez przeładowania całej strony"

Mam coś takiego
Kod
        <script type="text/javascript">
            $(document).ready(function(){
                    $('form').submit(function(){
                            var czas = $('#data').val();
               $.post("test.php", { 'czas': czas }, function(data){

i nie wiem co dalej wstawić żeby mi się wykonało i wyświetliło w divie o id np log
plik test.php
Kod
$sel = $db->query("SELECT * FROM `tabela`");
while($r = $sel->fetch_assoc()){
$hmm .= $r['cos'];
}


PrinceOfPersia
http://api.jquery.com/load/
Szymciosek
Nie rozumiem co ma do tego load()?
Jemu chodzi o to żeby php zwrócił dane BEZ PRZEŁADOWANIA strony, do czego przyda się tutaj ajax.
Majcon
no właśnie i część kodu mam a dalej nie wiem sleep.gif nawet nie wiem czy ta część jest dobra
PrinceOfPersia
Cytat
Nie rozumiem co ma do tego load()?
Jemu chodzi o to żeby php zwrócił dane BEZ PRZEŁADOWANIA strony, do czego przyda się tutaj ajax.

przecież .load() to jedna z ajaxowych funkcji jQuery ohmy.gif
"Load data from the server and place the returned HTML into the matched element."

chociaż łatwo można pomylić z tym: "Note: The event handling suite also has a method named .load(). jQuery determines which method to fire based on the set of arguments passed to it."
Majcon
a to czasami nie jakoś tak
$('#log').text(); questionmark.gif
Szymciosek
$("#log").text() -> możesz przypisać do zmiennej

$("#log").text('new text'); -> a tak nadajesz nowy tekst.
Majcon
to jak to teraz zrobić żeby zmienna $hmm z kodu php wyświetlił się za pomocą text lub load sleep.gif
pyro
  1. $("form").on("submit", function() {
  2. var $this = $(this);
  3. $this.preventDefault();
  4. $.ajax({
  5. url: "/skrypt.php",
  6. success: function(data) {
  7. $("divZWynikiem").html(data);
  8. }
  9. });
  10.  
  11. });
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.