我花了最后 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);
?>
非常感谢你的帮助。