Autor | Zpráva | ||
---|---|---|---|
vazo Profil |
#1 · Zasláno: 16. 7. 2013, 23:25:01
Ahoj,
můžete mi prosím někdo poradit? Nevím proč níže uvedené funguje, ale jakmile přidám parametr var val3 = document.getElementById(jmeno).value;, kam bych chtěl uložit další proměnnou z funkce uprav (konrétně jmeno, atd), tak script přestane jít. :-( HTML: <input type="button" value="Ulož" onclick="uprav('<?php echo $id_pom; ?>','<?php echo $datum_vstupu; ?>','<?php echo $jmeno; ?>','<?php echo $odpracovaneBH; ?>','<?php echo $datum_narozeni; ?>','<?php echo $post; ?>','<?php echo $odbornost; ?>','<?php echo $foto; ?>'); return false;"> JAVASCRIPT/AJAX: function uprav(id_pom,datum_vstupu,jmeno,odpracovane_hod2,datum_nar2,post_cl2,odbornost_cl2,foto_cl2) { var http = new XMLHttpRequest(); var val1 = document.getElementById(id_pom).value; var val2 = document.getElementById(datum_vstupu).value; http.open("POST", "clenove_uprava.php", true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.setRequestHeader("Connection", "close"); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { window.location = http.responseText; } } http.send('val1=' + val1 + '&val2=' + val2); } <?php if(isset($_POST['val1'])) { $id_clena2 = $_POST['val1']; $datum_vstupu2 = $_POST['val2']; $jmeno2 = $_POST['val3']; $odpracovaneBH2 = $_POST['val4']; $datum_narozeni2 = $_POST['val5']; $post2 = $_POST['val6']; $odbornost2 = $_POST['val7']; $foto2 = $_POST['val8']; $zarazeni2 = "deti"; MySQL_Query("UPDATE ".$MySQL_clenove." SET `datum_vstupu`='$datum_vstupu2',`jmeno`='$jmeno2',`odpracovaneBH`='$odpracovaneBH2',`datum_narozeni`='$datum_narozeni2',`post`='$post2',`odbornost`='$odbornost2',`foto`='$foto2',`zarazeni`='$zarazeni2' where `id`='$id_clena2'"); } ?> |
||
_es Profil |
vazo:
„ale jakmile přidám parametr var val3 = document.getElementById(jmeno).value;“ V uvedenom kóde nič také nie je. Z čoho máme vyveštiť, ako nesprávne to „pridáš“? Prečo vlastne nepoužiješ normálny formulár, keď aj tak presmerovávaš celú stránku (13. riadok)? |
||
vazo Profil |
#3 · Zasláno: 17. 7. 2013, 16:51:53
Nemohu použít normální form, jelikož toto tlačítko je již v jednom formu obsažené. Jinak kód s přidanou další proměnnou vypadá takto:
function uprav(id_pom,datum_vstupu,jmeno,odpracovane_hod2,datum_nar2,post_cl2,odbornost_cl2,foto_cl2) { var http = new XMLHttpRequest(); var val1 = document.getElementById(id_pom).value; var val2 = document.getElementById(datum_vstupu).value; var val3 = document.getElementById(jmeno).value; http.open("POST", "clenove_uprava.php", true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.setRequestHeader("Connection", "close"); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { window.location = http.responseText; } } http.send('val1=' + val1 + '&val2=' + val2 + '&val3=' + val3); } |
||
Chamurappi Profil |
#4 · Zasláno: 17. 7. 2013, 17:27:22
Reaguji na vaza:
Pravděpodobně element s id odpovídajícím hodnotě argumentu jmeno neexistuje. Hlásí něco chybová konzole?
„jelikož toto tlačítko je již v jednom formu obsažené“ Kdyby to bylo normální type="submit" tlačítko s name , tak pak skriptem na straně serveru můžeš zjistit, které tlačítko bylo zmáčknuté, a podle toho provést různé akce. Připadalo by mi to mnohem rozumnější, než AJAX + přesměrování. Ale nevím, v jaké jsi přesně situaci.
|
||
vazo Profil |
#5 · Zasláno: 17. 7. 2013, 20:36:15
Ono
document.getElementById(jmeno).value; nebere proměnou přímo z parametru funkce? => function uprav(id_pom,datum_vstupu,jmeno,odpracovane_hod2,datum_nar2,post_cl2,odbornost_cl2,foto_cl2) Jestliže ne, tak jak toho docílím,aby se proměnná brala přímo z parametru funkce? Díky. (Jsem začátečník,co se týče javascriptu a ajaxu.)
|
||
Chamurappi Profil |
#6 · Zasláno: 17. 7. 2013, 21:34:40
Reaguji na vaza:
Bere. |
||
vazo Profil |
#7 · Zasláno: 17. 7. 2013, 21:49:34
V tom případě by mě zajímalo, proč to nefunguje. :-/
|
||
abc Profil |
edit: špatně jsem si přečetl kód.
-> podívej se do konzole, kde je problém |
||
vazo Profil |
#9 · Zasláno: 17. 7. 2013, 23:32:38
Díky, už jsem na to asi prostřednictvím chybové konzole přišel... když je pole jmeno před editací prázdné, hodí to chybu a nic to neprovede (pokud se ovšem v poli jmeno před editací něco nachází, provede se zpracování bez problému). Chce to ošetřit, zítra to zkusím nějak vymyslet.
|
||
Časová prodleva: 11 let
|
0