0

我花了最后 2 天试图使以下代码工作。
我有三种不同语言的表格。他们每个人都有一个编辑按钮,弹出一个文本编辑器。我想做的是,当我单击“保存并关闭”按钮时,编辑的内容将使用 javascript (AJAX) 和 PHP/SQL 在数据库中更新,但在控制台中它给了我以下错误:Uncaught ReferenceError: valueContent没有定义。所以这是我到目前为止的代码。

$mvccont .=
    "<form action='edit_language/".ID.".raw' method='post' target='pop' class='comparelist' style='clear: both' onsubmit='window.open(\"\", \"pop\", \"width=0,height=0,resizeable,scrollbars\");'>".
        "<input type='hidden' name='keyword' value='".$keyword."'>".
        "<table style='width:100%; border-collapse: collapse;' >".
        "<tr><td width='20%' ><div class='info' style='width:100%; border:none;' >".
            substr($keyword, 0, 20)."<a title='".$keyword."'><input type='submit' value='Save' class='BUYN'/></a>".
            "<a href='edit_language/".$keyword."/delete'><input type='button' value='Delete' class='NONA'/></a>".
        "</div></td>";

        foreach($lan as $lang=>$lame) {
            $idk = str_replace(" ", "", $keyword).$lang;
            $mvccont .=
            "<td><div class='number3'".(($red[$keyword][$lang]=='')?" style='background: #fcc;'":"")." style='border:none;' >".
                "<input type='hidden' name='touch".$lang.$keyword."'/>".
                "<input type='text' id='s".$idk."' name='a".$lang."' value='".htmlentities($lame, ENT_QUOTES, "UTF-8")."' onchange=\"this.style.borderColor='#ff0000'; document.getElementsByName('touch".$lang.$keyword."')[0].value='true'\"/><a onclick='popbox(false, ".$idk.", true); mce();'><input type='button' value='Edit' class='BUYN'/></a>".
                "<br />".($red[$keyword][$lang]).
                "<script>".
                    "function falaffel".$idk."(step) {".
                        "var l".$idk."=document.getElementById('s".$idk."').value;".
                        "if(step==1) {".
                            "return '<textarea>'+l".$idk."+'</textarea><input type=\"button\" value=\"Save & close\" class=\"NONA\" onclick=\"'+\"document.getElementById('s".$idk."').value=tinyMCE.activeEditor.getContent(); ".$idk."=falaffel".$idk."(1); popboxremove(); document.getElementById('s".$idk."').style.borderColor='#ff0000'; updateValue(); document.getElementsByName('touch".$lang.$keyword."')[0].value='true' \"+'\">';".
                        "}".
                        "return l".$idk.";".
                    "}".
                    "var ".$idk." = falaffel".$idk."(1); ".
                "</script>".
            "</div></td>";
        }
        $mvccont .=
    "</tr></table></form>";

然后这里是 AJAX 代码:

function updateValue(){
var ajaxRequest = getXmlHttpRequestObject();

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var valueContent = document.getElementsByTagName("input");
    }
}
ajaxRequest.open("POST", "comp/update_lang.php", true);
ajaxRequest.send(valueContent);
}

最后是 PHP 代码:

<?php
foreach(array(1=>"en", 2=>"it", 3=>"pl") as $id=>$lang) {
    if($_POST["touch".$id.$_POST["keyword"]]=="true") {
        $sql = "UPDATE translat SET value='".mysql_real_escape_string($_POST["a".$id])."', date=".NOWTIME." WHERE lang=".$id." AND keyword='".urldecode($_POST["keyword"])."'";
        $insert = $db->query($sql);
        $insert->execute();
        @unlink(TEMP."lang_".$lang.".cache");
    }
}
$mvccont .=
"<script>".
    "window.close();".
"</script>";
die($mvccont);
?>

非常感谢你的帮助。

4

0 回答 0