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'); 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 |
#2 · Zasláno: 11. 5. 2015, 00:16:57
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 } |
||
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 |
#4 · Zasláno: 11. 5. 2015, 15:58:56
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 |
#5 · Zasláno: 11. 5. 2015, 16:11:15
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 |
#6 · Zasláno: 11. 5. 2015, 16:22:04
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 |
#7 · Zasláno: 11. 5. 2015, 16:26:36
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 |
#8 · Zasláno: 11. 5. 2015, 16:36:41
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 |
#9 · Zasláno: 11. 5. 2015, 16:40:38
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 |
#10 · Zasláno: 11. 5. 2015, 23:51:54
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 |
#11 · Zasláno: 11. 5. 2015, 23:52:53
fodsqa:
Právě success je na to to pravé místo. |
||
fodsqa Profil |
#12 · Zasláno: 12. 5. 2015, 00:11:14
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 |
#13 · Zasláno: 12. 5. 2015, 00:40:33
Řá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 |
#14 · Zasláno: 12. 5. 2015, 01:03:28
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 |
#15 · Zasláno: 12. 5. 2015, 03:14:03
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. |
||
Časová prodleva: 9 let
|
0