Autor Zpráva
ForMiss
Profil *
Zdravím,všechno mě funguje,akorát mám malej problém.
formulář i zpracování formuláře v php mám v jednom souboru.
tento ajax script tam mám.
$(document).ready(function() {
  var form = $('#formular'); 
  var submit = $('#submit'); 
  var table = $('#contactForm'); 

  form.on('submit', function(e) {
    e.preventDefault();

    $.ajax({
      url: 'stat.php', 
      type: 'POST',
      dataType: 'html',
      data: form.serialize(),
      success: function(data) {
        table.html(data); 
        submit.html('+'); 
      },
      error: function(e) {
        console.log(e)
      }
    });
  });
});
a pak v index.php mám script
$('#stats').load("form.php");
<div id="stats"></div>
kterej mě načte soubor form.php

script má udělat to,že na stránkách mám vypsaný čísla daného uživatele,přidat k němů +1 a zase zapsat do db.
všechno funguje jak má,ale se spožděním.
vejdu na stránku,kliknu na button,nic se nestane,kliknu znova a až potom se přičte +1,aktualizuju stránku a přičte se tam ještě jednou +1 jelikož jsem na to kliknul vlastně 2x
prostě to je o 1 dobu spožděný.
Kde je problém? potřebuji aby se zobrazil hned jak kliknu na button a ne až kliknu znova.
Díky
_es
Profil
ForMiss:
vejdu na stránku,kliknu na button,nic se nestane
No tak to sprav tak, aby sa „niečo stalo“. V 15. a 16. riadku sa stane to, že je vidno zmenu v databáze? „Hneď“ sa to stať nemôže, lebo odoslanie dát, ich spracovanie a prijatie dát zo servera nejaký čas trvá.
ForMiss
Profil *
_es:
a jak to udělat aby to bylo okamžitě?nebo aspon aby se čekalo než se to vloží aby se zobrazil správný číslo?
_es
Profil
ForMiss [#3]:
Dal si málo informácií. Čo vracia serverový skript stat.php? Tak ho sprav tak, aby vrátil potrebné dáta a tie následne spracuj (funkcia vo vlastnosti success) tak, aby boli na stránke viditeľné.
ForMiss
Profil *
Vrací akorát ten formulář
  <table id="contactForm"  class="tablestatus">
    <tr>
      <td>data1</td>
      <td><?=  $db['cislo'];?></td>
      <td><form id="formular" method="POST">
          <input type="hidden" value="1" name="stat" id="test">
          <button class="view" id="submit" type="submit">+</button></form></td>
      <td>    
      </td>      
    </tr>  
  </table>

nad tímto formulářem je i ten script který jsem sem vložil. a taky vkládání do databáze
if($_POST['stat'] == 1){
  DB::zmen("users",$dbplus+1);

}elseif($_POST['stat'] == 2){
  DB::zmen("users",$dbplus+1);
}



tak jsem to vyřešil..bylo to spožděním té podmínky POST jinač díky za navedení k chybě :)
_es
Profil
ForMiss:
Máš to príliš chaotické a zmätené, skús si niekde nájsť nejaký vzorový príklad, ako to spraviť. Serverový skript by mal vrátiť nejaké jednoduché textové dáta, ktoré následne spracuješ v JS do stránky a nie hentaký nejaký chrcheľ HTML kódu. Ak to vracia hento, ako si predstavuješ, že by mal prehliadač spracovať tabuľku do tabuľky (nie normálne do bunky tabuľky) a ešte k tomu s rovnakým atribútom id, teda konštrukciu <table id="contactForm" class="tablestatus"><table id="contactForm" class="tablestatus">...
ForMiss
Profil *
ano vím o tom,nyní vím i kde mám chybu,ale pořád mě to blbne.
zkoušel jsem vypsat php proměnnou a potom jí zařadit do podmínky,ale funguje to pouze jednou :d
document.getElementById('divy').innerHTML = "<? $div='0'; ?>";
if($div == "1"){
jak to tedy zajistit abych včas odeslal nějakou hodnotu kterou bych mohl zpracovat do podmínky?

Jinač takhle to snad není ne? to zpracování tabulky do tabulky..?
_es
Profil
ForMiss:
Jinač takhle to snad není ne? to zpracování tabulky do tabulky..?
V [#1] máš: var table = $('#contactForm'); a table.html(data);
Pritom tvrdíš, že stat.php vráti HTML kód v tvare <table id="contactForm"...>...</table>. Ako má asi prehliadač narvať tabuľku do tabuľky takýmto spôsobom?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: