Autor Zpráva
fodsqa
Profil
Zdravím , mám takíto problem , cez ajax volam register.php všetko uloži ako má. Ale teraz potrebujem vypísať id z DB ktoré bolo automaticky pridelené. Len nie hocikde vypísat ale tak aby som ho mohol použiť automaticky v
$(".ui-selected").attr('id', '$id_z_DB'); 
mám pocit že som skúšal pomaličky všetky spôsoby čo mi radili , alebo čo mi napadli. Spolieham už iba na vás, som z toho nadne, trápim sa s tým asi týžden :/. Ak chete aj kódy vidieť treba napísať ktory.

register.php
<?php
 if($typ === Web){
  $querry_web = mysql_query("INSERT INTO web (email, heslo, zem, web, url, obrazok, firma, priezvisko, krajina, psc, telcislo, ico, dic, ic_dph) VALUES('" . $email ."','". $heslo . "','". $zem . "','". $nazov_web . "','". $url_web . "','". $obrazok_web . "','". $meno_web . "','". $priezvisko_web . "','". $adresa_web . "','". $psc_web . "','". $tcislo_web . "','". $ico_web . "','". $dic_web . "','". $icdph_web . "')");
}
else
{
$querry_inzerat=mysql_query("INSERT INTO inzerat (email, heslo, zem, meno, telc, popis) VALUES('" . $email ."','". $heslo . "','". $zem . "','". $meno_inzerat . "','". $tcislo_inzerat . "','" . $popis_inzerat . "')");
}
?>

js
<script>
 $(".form").submit(function () {
          return false;
        });
        $.ajax({
                  type: 'POST',
                  url: 'register.php',
                  data: $(".form").serialize() + "&obrazok_web=" + $('input[type="file"]').value.replace(/\\/g, '/').replace(/.*\//, '')
        });
</script>
Keeehi
Profil
V té definici ajaxu můžeš přidat funkci, která se má vykonat při úspěchu.
success:function(data) {
    // tvoje akce s promennou data
}
V proměnné data je string celého výstupu který pošle registr.php. Pokud si vypíšeš jen ID, bude tam jen ID. Pokud chceš posílat něco složitějšího, použij JSON.
fodsqa
Profil
Dve otázky 1. Keď mi ID prideluje až Databáza bude to data obsahovať to ID? 2. Ako z data vytiahnem iba ID?
Keeehi
Profil
fodsqa:
Keď mi ID prideluje až Databáza bude to data obsahovať to ID?
Data obsahuje to, co si stránce register.php vypíšeš. To znamená když tam budeš mít echo "dnes je krásný den" v proměnné data se objeví řetězec "dnešní je krásný den". Když si vypíšeš něco jiného (třeba ID vloženého záznamu) bude v proměnné data to něco jiného (ID vloženého záznamu).

Ako z data vytiahnem iba ID?
Když si pošleš jen to ID, bude tam jen ID a nic jiného. Pokud tam chceš posílat pole nebo objekt, využiješ JSON a po dekódování pomocí JSON.parse(data) už s výsledkem pracuje normálně jako s polem nebo objektem.
fodsqa
Profil
1.) do register.php mam ešte napísať niečo takéto
$id = mysql_querry("SELECT id FROM web WHERE email = '" . $email_web . "'");
echo ($id)

a teraz vlastne register.php obsahuje iba ID

2.) to dekódujem pomocov toho JSON.parse(data) ? alebo to nemusím a staći mi "data" dať takto dáko $(".ui-selected").attr('id', 'data');


ak som správne pochopil
Keeehi
Profil
1. Ano to je jedna možnost (i když zrovna teď ti tam ještě něco chybí). Ovšem je elegantnější cesta.
echo mysql_insert_id();

2. Nepochopil jsi nic. Když si posíláš jen ID, nemusíš nic dekódovat. A data je proměnná. Kolem ní ty apostrofy nemají co dělat.
fodsqa
Profil
aha takže 1. by bola vyriešena iba do register.php dám/dopíšem echo mysql_insert_id();
a k tej 2. neviem ktoré apostrofy mysliš ale to data potrebujem použiť v dalšom príkaze a to je ten .attr('id','premenna')
Keeehi
Profil
fodsqa
Hodilo by se trochu samostatnosti. Co třeba 1 vyzkoušet a jelikož to bude na 99% fungovat, tak s tím už neotravovat. Taky se hodí si k tomu přečíst manuál. Určitě by ti pak bylo mnoho věcí jasnějších.

Když proměnnou obalíš do apostrofů, už to není proměnná ale řetězec. Tak se pak nediv, že se elementu s třídou .ui-selected nastaví id="data" místo id="837"

Tohle jsou ale naprosté základy programování!

Ještě jsem zapomněl upozornit na to, že funkce z rodiny mysql_* by se už neměly používat a místo nich by se měly používat mysqli_*.
fodsqa
Profil
jojo prepač ja som len chcel si to dako ujasniť :D , totiž ja a angličtina nejde moc dokopy, preto sa radšej pýtam tu , lepšie sa to naučim. Idem to vyskúšat.
fodsqa
Profil
no už to ide ako má =3 , ale narazil som na problem :D ako spraviť aby až po dokončení ajaxu vykonalo dalšie veci? , cez success to nejde :/ , založim nové vlákno alebo to poriešime tu?
Keeehi
Profil
fodsqa:
Právě success je na to to pravé místo.
fodsqa
Profil
lenže keď mam zvyšokv success tak mi to nedokonči
$(document).ready(function(){
    $(".pay").click(function(){
      $(".toto").removeClass("toto");
      
      $(".ui-selected").addClass('obsadene');
      $(".form").submit(function () {
          return false;
        });
        $.ajax1({
                  type: 'POST',
                  url: 'register.php',
                  data: $(".form").serialize() + "&obrazok_web=" + $("input[type='file']").val().replace(/\\/g, '/').replace(/.*\//, ''),
                  success:function(data){
                  $(".ui-selected").attr( "id", data);
                      alert(data);
                  
        $(".grid").css("visibility", "hidden");
        
        

        
        
        
        
        
         
        var content = $('#save').html();
            $.ajax({
                  type: 'POST',
                  url: 'save.php',
                  data: {id: content}
                  });
         
         alert("Dokončene!");
                  }
        });
    });
}); 

a stránka Tu
Keeehi
Profil
Řádky 6-8 se mi nezdají, že jsou umístěné správně. Nebo se opravdu zabránění odesílání formuláře má aktivovat teprve až po kliknutí na něco s třídou pay? Ale to nejspíše nesouvisí s problémem.

Na řádku 9 ti za ajaxem přebývá jednička.

Odsazuj pořádně, protože v tomto se člověk strácí. Je možné, že tam někde chybí nebo přebývá znak ale v tomhle bordelu to nebudu hledat.

Na dokázané stránce jsou do kódu vypisovány chyby. Což ho rozbíjí a je možné, že problémy jsou způsobované tím.

A taky jsi nenapsal, kde se to zasekne. Máš tam 2 alerty, ty se zobrazí? Jak se ta nefunkčnost projevuje.
fodsqa
Profil
Riadky 6-8 zabranuju refreshnutiu stránky

Na riadku 9 1 som odstránil

Znak navyše tam neni , kontroluje mi to shiftedit

Neukazalo mi ani jeden alert, ale po zmazani tej "1" mi to ide :) , ospravedlnujem sa moja chyba , niekedy sa mi to stáva. Veľmi pekne dakujem za pomoc
Keeehi
Profil
fodsqa:
Riadky 6-8 zabranuju refreshnutiu stránky
To já vím, jen by měli být logicky někde jinde. Řekneme přesunout je mezi 1. a 2. řádek.

Neukazalo mi ani jeden alert, ale po zmazani tej "1" mi to ide :) , ospravedlnujem sa moja chyba , niekedy sa mi to stáva.
Kdyby ses podíval do konzole, tak bys tam určitě viděl chybovou hlášku že ajax1 neexistuje.

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: