Zbytočne si to celé komplikuješ tým, že javascriptom vypĺňaš formulár, ktorý potom odošleš a oveľa elegantnejšie to môžeš vyriešiť napríklad ajaxom, ale to ti asi nepomôže však?
Potreboval by si na to nejaký framework, ideálne jQuery, ktorý pekne zakrýva
odoslanie formulára cez POST, takže ti stačia prakticky tri riadky a data pošleš na server bez všetkých tých .submit, .value a neviem čoho všetkého ešte, čo si skopíroval z nejakého roky neaktuálneho článku.
Čo keby si to skúsil napríklad takto:
Kód:
<!-- CSS Styles -->
<style>
.speech {border: 1px solid #DDD; width: 300px; padding: 0; margin: 0}
.speech input {border: 0; width: 240px; display: inline-block; height: 30px;}
.speech img {float: right; width: 40px }
</style>
<div class="speech">
<input type="text" name="preklad" id="transcript" placeholder="Hlas/Text" />
<img onclick="startDictation();" src="http://pngimg.com/uploads/microphone/microphone_PNG7928.png" />
<input type="submit" name="submit" value="odosli">
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script type="text/javascript">
function startDictation() {
if (window.hasOwnProperty('webkitSpeechRecognition')) {
var recognition = new webkitSpeechRecognition();
var result = '';
recognition.continuous = false;
recognition.interimResults = false;
recognition.lang = "sk-SK";
recognition.start();
recognition.onresult = function(e) {
result = e.results[0][0].transcript;
$.post(
"ajax.php",
{ preklad: result }
);
recognition.stop();
};
recognition.onerror = function(e) {
recognition.stop();
}
}
}
</script>
To PHP si presuň do nejakého iného súboru (v príklade ajax.php, uprav si to prípadne na nejaký tvoj obľúbený názov) a nedávaj tam tú podmienku na isset potom.