Autor Zpráva
vazo
Profil
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;">
(všechny proměnné jsou naplněny!)
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:
<?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'");
}
?>
Předem díky moc za rady.
_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
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
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
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
Reaguji na vaza:
Bere.
vazo
Profil
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
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.

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: