| 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: 12 let
|
|||
0