Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z komentarzami
Forum PHP.pl > Forum > Przedszkole
indexx
Witam, mam taki oto skrypt komentarzy


plik inc_rate.php
plik



a to plik submitcomments.php

Cytat
<?php
//Please set the following variables for your mysql database:
$db_hostname = "localhost"; //usually "localhost be default"
$db_username = ""; //your user name
$db_pass = ""; //the password for your user
$db_name = ""; //the name of the database


/*MYSQL DATABASE CONNECTION/ TRACKING FUNCTIONS
--------------------------------------*/
// connect to database
$dbh = mysql_connect ($db_hostname, $db_username, $db_pass) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db_name);


$tuturl = $_POST["tuturl"];
$tutid2 = $_POST["tutid2"];
$name = $_POST["name"];
$url = $_POST["url"];
$email = $_POST["email"];
$message = $_POST["message"];

$sendcomment = mysql_query("INSERT INTO comments SET tutorialid='$tutid2', name='[/color][color="#a52a2a"]$name', url='$url', email='$email', comment='$message', date=now()");
if($sendcomment){
//header("Location: $tuturl");
echo "<h1>Submission Successful</h1>";
echo "Your comment has been submitted. You will now be redirected back to the last page you visited. Thanks!";
echo "<meta http-equiv='refresh' content='2;URL=$tuturl'>";
} else {
echo "There was an error with the submission. ";
}

?>





Po napisaniu komentarza przez użytkownika wyświetla się nowa strona z "Your submit......" która po kilku sekundach odświeża się i powraca do strony komentarzy, tutaj moje pytanie, czy jest jakaś możliwoś na zapisanie komentarza bez przeładowania strony, np aby wyświetlił się komunikat o zapisaniu komentarza lub komentarz został automatycznie zapisany bez ładowania strony submitcomment.php ?

Próbowałem umieścić kod z submitcomment.php w inc_rate.php, na różne sposoby ale nic mi nie wychodzi, proszę o pomoc.
wookieb
Ajax. W internecie masz mnostwo kursow na ten temat.
Najszybciej bedzie uzyć advajax -> google.
decha-design
@wookieb wszystko Ci wytlumaczył, do tego służy AJAX ... czyli np. uży:
- AdvAJAX
- Prototype

a na marginesie ... do listingu skryptów korzystaj z tagow [ php ]
indexx
Próbowałem, tak jak napisali wookieb i decha-design zrobić tpo przy pomocy ajax, ale zupełnie mi to nie wychodzi, czy mógł by ktoś wyjaśnić mi to "łopatologicznie'', bo zupełnie sobie nie radzę, oczywiście nie za darmo.
Maxik
Kod
function $(id) {
    return document.getElementById(id);
}

function callAHAHget(url, div) {
    try {
         req = new XMLHttpRequest();
    } catch(err1) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(err2) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(err3) {
                req = false;
            }
        }
    }
    
    var rand = parseInt(Math.random()*99999999);
    req.onreadystatechange = function() { responseAHAH(div); };
    req.open("GET", url+'&rand='+rand, true);
    req.send(null);
}

function callAHAHpost(url, content, div) {
try {
         req = new XMLHttpRequest();
    } catch(err1) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(err2) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(err3) {
                req = false;
            }
        }
    }
    
    req.onreadystatechange = function() { responseAHAH(div); };
    req.open("POST", url, true);
    req.send(content);    
}

function responseAHAH(div) {
    if(req.readyState==4) {
        if(req.status==200) {
            $(div).innerHTML = req.responseText;
        } else {
            alert('Błąd serwera.')
        }
    } else {
        $(div).innerHTML = 'Zapisywanie';
    }
}


O sposób używania najlepiej zgłoś się do mnie na gg: 8780779(niewidoczny) bo to długo pisać.
indexx
Witam ponownie, udało mi się dodać odpowiednie funkcje aby komentarze były dodawane do bazy bez odświeżania strony, a po dodaniu wyświetla się komunikat na tej samej stronie, również bez odświeżania.

Tylko nie wiem jak zrobić, aby komentarze również pojawiały się bez odświeżania strony, narazie aby zobaczyć dodany komentarz należy odświeżyć stronę.
plik inc_rate

w pliku sendcomment.php nic nie zmieniałem, w pliku z komentarzami dodałem

Kod
<script type="text/javascript" src="mootools.js"></script>
    <script type="text/javascript">
        window.addEvent('domready', function(){
            $('myForm').addEvent('submit', function(e) {

            new Event(e).stop();
            var log = $('log_res').empty().addClass('loading');
            this.send({
                update: log,
                onComplete: function() {
                    log.removeClass('loading');
                }
            });
            });        
        });
    </script>
    <div id="log">
    <div id="log_res">
        
    </div>
    </div>


wszystko opiera się na bibliotece mootools.


Proszę o pomoc jak zrobić aby komentarze również wyświetlały się zaraz po dodaniu, bez odświeżenia strony.
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-2025 Invision Power Services, Inc.