<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<form action="" method="post" name="theform">
<table width="693" border="1" style="table-layout:fixed;">
<tr>
<td width="683" id="mymessage" contenteditable="true" name="mymessage">Write message here...</td>
</tr>
</table>
<script>
document.getElementById('mymessage').addEventListener('input', function() {
document.getElementById('hiddenInput').value = this.innerHTML;
console.log(document.getElementById('hiddenInput').value);
});
document.getElementById("mymessage").addEventListener("click", removePlace);
function removePlace()
{
document.getElementById("mymessage").innerHTML="";
}
</script>
<div id="google_translate_element"><span class="notranslate">Select language to translate your text above:</span></div>
<script type="text/javascript">
function googleTranslateElementInit()
{
new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'en,fr,it,ja,ko,ms,ru,ta,th,zh-CN', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, multilanguagePage: true}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<input type="hidden" id='hiddenInput' name='hiddenInput'>
<span class="notranslate"><input type="submit" id="btnSend" name="btnSend" value="Send"></span>
</form>
<?php
$servername = "localhost";
$username = "mytranslateim";
$password = "qwerty";
$dbname = "test";
$dbconnectivity = mysqli_connect($servername, $username, $password, $dbname);
if (isset($_POST['btnSend']))
{
$getmsg = $_POST['hiddenInput'];
if($getmsg == "")
{
echo "nothing";
}
else
{
echo $getmsg;
$sql = "INSERT INTO testing(testmsg) VALUES ('$getmsg')";//if i translated a text, for example i translate the word "test" in chinese, it will echo in chinese but will not save in database as chinese
$insertit = mysqli_query($dbconnectivity, $sql);
}
}
?>
</body>
</html>
I want to save a translated text inside a php mysql table. Currently, the system will echo in translated text but it will not save in the database as the text i typed. For example, if i type the word "test" and translate it to japanese as "テスト", the database will save the word "test" and not "テスト". how can i make it save the translated text?
$mysqli->query("SET NAMES utf8");
beforemysqli_query($dbconnectivity, $sql);
– BartholomeushiddenInput
to being theinnerHTML
value ofmymessage
... which is the untranslated text I presume - rather than the response from Google Translate. You're then inserting that untranslated text into the database when you post the form with$_POST['hiddenInput']
– GrewitzhiddenInput
before the form is submitted; I'm pretty sure that's the solution but having never used the Google Translate API I don't know how to implement it so I'll leave an answer to someone more knowledgeable than I. – Grewitz