我想在这里制作一个简单的翻译网站:http://traductordeinglesaespanol.co/。我创建了一个简单的PHP代码,使用get到外部翻译api工作正常。这是代码:
<?php
if(!empty($_GET['text'])){
$trans_url ='http://api.mymemory.translated.net/get?q='.urlencode($_GET['text']).'&langpair=en|es' ;
$trans_json = file_get_contents($trans_url);
$trans_array = json_decode($trans_json, true);
echo $trans_array['responseData']['translatedText'];
}
?>
以下是简单的html表单:
<form id="form" method="get" action="tran.php">Enter Text to be Translated below:
<input name="text" type="text" id="test" />
<button id="but">Translate</button></form>
<div class="results"></div>
现在翻译工作正常,但我想要做的是使用jQuery获取tran.php结果并将其显示在表单下方的“result”类中。我试图通过以下方式做到这一点: 我通过编辑functions.php文件加载,因此它加载了jQuery和一个名为tran.js的.js脚本。当我检查元素时,我看到jQuery和正在加载的脚本。在脚本中我放了这个基本代码:
jQuery(document).ready(function(){
$('#go').click(function() {
$.ajax({
type: 'GET',
url: 'tran.php',
success: function(data) {
$('.result').html(data);
}
});
});
});
并将操作更改为从此页面处理表单。 (tran.php在根目录中。)但它根本不起作用。我怀疑编码中存在一些重要的错误,但作为一个完整的启动者,我无法找到错误的位置,所以任何建议/更正都会受到高度赞赏!
答案 0 :(得分:0)
你应该这样使用ajax:
var to_be_translated = "Hello";
$.ajax({
type: 'GET',
url: 'tran.php',
data : 'text=' + to_be_translated,
success: function(data) {
$('.result').html(data);
}
});
我在这里添加了&#34;数据&#34;标签,它说JS变量to_be_translated
在PHP中将被视为$_GET['text']
。
答案 1 :(得分:0)
我以某种方式设法让它发挥作用!有一个小错字:
data : 'text=' + to_be_translated;
我取代了“;”最后用一个逗号,现在我得到的结果是这样的:假设我输入要翻译的文本名称(西班牙语中的nobre!),我明白了:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <title>estes</title> </head> nombre
所以我必须以某种方式摆脱这些标题!无论如何,我非常感谢你的帮助!格拉西亚斯!