ajax后的javascript空帖子

javascript empty post after ajax?

本文关键字:javascript 后的 ajax      更新时间:2023-09-26

我刚刚写了一些javascript,当我点击一个按钮后,表中的一些标签消失了,一些输入文本出现了,而不是标签,这一切都很好,然后我创建了一个按钮,它应该做一些事情,所有这些都是用JS完成的,我创建的按钮应该通过ajax发布,这也很好,它发布在我想发布的地方,但在我的帖子应该在的PHP文件中,它们是空的,它们发布在那里,但都是空的但不应该是空的。我不知道为什么。。。这里的si代码:

function vytvor () {
    var tlacidlo = document.getElementById("upravit");
    tlacidlo.style.display = 'none';
    var tabulka = document.getElementById("tabulka");
    var divPoh =  document.getElementById("pohlaviediv");
    var divMeno = document.getElementById("menodiv");
    var divPriez = document.getElementById("priezviskodiv");
    var divLog = document.getElementById("logindiv");
    var labelPoh = document.getElementById("pohlavie");
    var divMail = document.getElementById("maildiv");
    var divCislo = document.getElementById("cislodiv");
    labelPoh.style.display = 'none';
    var labelMen = document.getElementById("meno");
    labelMen.style.display = 'none';
    var labelPriez = document.getElementById("priezvisko");
    labelPriez.style.display = 'none';
    var labelLog = document.getElementById("login");
    labelLog.style.display = 'none';
    var labelMail = document.getElementById("mail");
    labelMail.style.display = 'none';
    var labelCislo = document.getElementById("cislo");
    labelCislo.style.display = 'none';
    var hodnotaPoh =  document.getElementById("pohlavie").textContent;
    var textPoh = document.createElement("input");
    textPoh.setAttribute("type", "text");
    textPoh.setAttribute("id", "pohlavie");
    textPoh.setAttribute("value", hodnotaPoh);
    var hodnotaMen =  document.getElementById("meno").textContent;
    var textMen = document.createElement("input");
    textMen.setAttribute("type", "text");
    textMen.setAttribute("id", "meno");
    textMen.setAttribute("value", hodnotaMen);
    var hodnotaPriez =  document.getElementById("priezvisko").textContent;
    var textPriez = document.createElement("input");
    textPriez.setAttribute("type", "text");
    textPriez.setAttribute("id", "priezvisko");
    textPriez.setAttribute("value", hodnotaPriez);
    var hodnotaLog =  document.getElementById("login").textContent;
    var textLog = document.createElement("input");
    textLog.setAttribute("type", "text");
    textLog.setAttribute("id", "login");
    textLog.setAttribute("value", hodnotaLog);
    var hodnotaMail =  document.getElementById("mail").textContent;
    var textMail = document.createElement("input");
    textMail.setAttribute("type", "text");
    textMail.setAttribute("id", "mail");
    textMail.setAttribute("value", hodnotaMail);
    var hodnotaCislo =  document.getElementById("cislo").textContent;
    var textCislo = document.createElement("input");
    textCislo .setAttribute("type", "text");
    textCislo .setAttribute("id", "cislo");
    textCislo .setAttribute("value", hodnotaCislo);
    var uloz = document.createElement("input");
    uloz.setAttribute("type", "button");
    uloz.setAttribute("value", "Ulož zmeny");
    uloz.setAttribute("onclick", "ukaz()");
    tabulka.appendChild(uloz);
    divPoh.appendChild(textPoh);

    divMeno.appendChild(textMen);
    divPriez.appendChild(textPriez);
    divLog.appendChild(textLog);
    divMail.appendChild(textMail);
    divCislo.appendChild(textCislo);
    tabulka.document.body.appendChild( divPoh);
    tabulka.document.body.appendChild( divMeno);
    tabulka.document.body.appendChild(divPriez);
    tabulka.document.body.appendChild( divLog);
    tabulka.document.body.appendChild( divMail);
    tabulka.document.body.appendChild( divCislo);
}

创建输入而不是标签(我知道这可以很容易地完成)这是我的后功能

function ukaz () {
    var  meno = $('#meno').val();
    var priezvisko= $('#priezvisko').val();
    var login = $('#login').val();
    var mail=$('#mail').val();
    var cislo=$('#cislo').val();
    $.post( "uloz.php", {
            'login':login,
            'meno':meno,
            'priezvisko':priezvisko,
            'mail':mail,
            'cislo':cislo
        });
         function (data) {
            $('#result').html(data);
        };

}

正在张贴,但所有东西都是空的。。我错过了什么?

 echo '<table  id="tabulka">';
                echo '<tr><td><label for="pohlavie" >Pohlavie:</label></td><td><div id="pohlaviediv"><label id="pohlavie" for="pohlavie">' . $pohlavie . '</label></div></td></tr>';
                echo '<tr><td><label for="meno" >Meno:</label></td><td> <div id="menodiv"><label id="meno" for="meno">' . $meno . '</label></div></td></tr>';
                echo '<tr><td><label for="priezvisko" >Priezvisko:</label></td><td><div id="priezviskodiv"> <label id="priezvisko" for="priezvisko">' . $priezvisko . '</label></div></td></tr>';
                echo '<tr><td><label for="login" >Login:</label></td><td><div id="logindiv"><label id="login" for="login">' . $login . '</label></div></td></tr>';
                echo '<tr><td><label for="mail" >E-mail:</label></td><td><div id="maildiv"><label id="mail" for="mail">' . $mail . '</label></div></td></tr>';
                echo '<tr><td><label for="cislo" >Tel. číslo:</label></td><td><div id="cislodiv"><label id="cislo" for="cislo">' . $cislo. '</label></div></td></tr>';
echo '</table>';

这是我在html中的表,将javascript中的这些元素添加到html主体中不是有问题吗?这些元素出现在我的页面上,但没有真正设置,然后我的ajax方法无法从中获得任何值?

好的,所以我解决了这个问题,问题是我给输入的ID与标签的ID相同,标签没有我想的值或类似的东西,所以我试图在JS中更改输入的ID名称,现在它开始工作了。

使用setAttribute()修改某些属性(尤其是XUL中的值)的工作不一致,因为该属性指定默认值。若要访问或修改当前值,应使用属性。例如,使用elt.value而不是elt.setAttribute('value',val)。您应该使用valueval()函数而不是setAttribute()来分配值,例如:

element.value = 'value';
//Or
$(element).val('value');

看看下面文章中接受的答案setAttribute()并没有按我预期的方式工作

希望这能有所帮助。