Ajax si raspuns PHP
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
keenbr
- Mesaje: 44
Ajax si raspuns PHP
Marius,am luat scriptul de la pagina
https://marplo.net/ajax/ajax_formulare.html" target="_blank" target="_blank si iam adaugat o baza de date...acum as mai vrea ceva si nu stiu de unde sa o apuc...sa fac o functie body onload astfel incat la 3 sau 5 secunde sa apara un mesaj nou daca s-a scris...ma poti ajuta?
asta e codul js:
Cod: Selectaţi tot
function get_XmlHttp() {
var xmlHttp = null;
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlHttp;
}
function ajaxrequest(formular, tagID) {
var cerere_http = get_XmlHttp();
var numele = formular.nume.value;
var mesajul = formular.mesaj.value;
var datele = 'nume='+numele+'&mesaj='+mesajul;
cerere_http.open("POST", 'add.php', true);
cerere_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
cerere_http.send(datele);
cerere_http.onreadystatechange = function() {
if (cerere_http.readyState == 4) {
document.getElementById(tagID).innerHTML = cerere_http.responseText;
}
}
}
iar asta este pagina add.php
Cod: Selectaţi tot
<?php
include("config.php");
if (isset($_POST['nume']) && isset($_POST['mesaj'])) {
$nume = $_POST['nume'];
$mesaj = $_POST['mesaj'];
if (strlen($nume)>0 && strlen($mesaj)>0) {
mysql_query("insert into mesaje set nume='".$nume."',mesaj='".$mesaj."'");
}
else {
}
}
$sql=mysql_query("select * from mesaje order by id desc");
while($row=mysql_fetch_array($sql))
{
$user=$row['nume'];
$msg=$row['mesaj'];
print "<b>".$user.":</b><i>".$msg."<br/>";
}
?>
asta e functia de adaugare mesaje:
Cod: Selectaţi tot
function shootbox()
{
print '
<div id="divLogin">
<div class="panelTop">Shootbox</div>
<div class="panel" style="font-size: 14px;">
';
print '
<div id="raspuns"> </div>
<form action="add.php" method="post" name="form1" onsubmit="ajaxrequest(this, \'raspuns\'); return false;">
Numele tau: <input type="text" name="nume" id="nume" size="20" maxlength="33" /><br />
Transmite un mesaj:<br />
<textarea name="mesaj" id="mesaj" cols="15" rows="2"></textarea><br />
<input type="submit" value="Trimite" />
</form>
';
print '
</div>
<div class="panelBottom"></div>
</div>
';
}
MarPlo
Mesaje: 4343
O idee ar fi folosirea unui fisier text in care, din "add.php", atunci cand adauga datele in mysql sa adauge timpul curent (format UNIX) in acel fisier, apoi, seteaza si o SESSION in care pune acel timp.
Functia ajax apeleaza un script php care citeste data din acel fisier si din SESSION. Daca sunt egale, inseamna ca nu s-a adaugat nici un mesaj, si nu trasmite ceva la Ajax, daca sunt diferite, transmite la Ajax ce vrei si reactualizeaza timpul din SESSION cu cel din fisierul text.
Pe partea Ajax, verifici daca s-a primit ceva:
if(cerere_http.responseText.length>1) { // Face ce vrei }
Cam asta este ideea, mai departe, Spor.
Subiecte similare
-
Post cu Ajax in modal
JavaScript - jQuery - Ajax
Primul mesaj
Bună ziua,
Vreau să trimit în aceeași pagină dar în modal două id-uri. Prin alert(id) îmi arată conținutul postului trimis dar în modal nu imi...
Ultimul mesaj
Nu prea inteleg mecanismul si ce anume nu functioneaza.
Oricum, daca functioneaza cand pui manual id-ul, poate ca problema e de la php.
Trebuie sa...
-
Ordine de executie cu jQuery-AJAX
JavaScript - jQuery - Ajax
Primul mesaj
Am acest cod (ajax este asincron):
function echoHello(){
return $.ajax({
//this will return hello ;
});
}
function echoWorld(){
return world...
Ultimul mesaj
Ajax face un apel către serverul web și este asincron. Nu știi cât va dura pana la raspuns. Este la fel ca:
setTimeout(_ => {...
-
Ajax fade mesaj si redirect dupa un timp
JavaScript - jQuery - Ajax
Primul mesaj
Am codul asta si vreau in loc de input type=button sa fie submit, dar sa imi dea fade la fel in 5 secunde de cand apare eroarea.
Daca schimb cu...
Ultimul mesaj
Am rezolvat,multumesc frumos de ajutor