【发布时间】:2015-11-09 10:32:54
【问题描述】:
我正在尝试在这里制作一个简单的翻译网站: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 结果并将其显示在表单下方的“结果”类中。我试图通过以下方式做到这一点: 我通过编辑 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 在根目录中。)但它根本不起作用。我怀疑编码中存在一些关键错误,但作为一个完整的初学者,我找不到错误在哪里,所以任何建议/更正将不胜感激!
【问题讨论】:
-
当你做AJAX时,你不提交表单......所以你只是在没有参数的情况下调用
tran.php......你必须在你的get参数中添加要翻译的文本,或在 POST 中...您是否在tran.php的开头添加了日志以查看是否达到?当您检查if(!empty($_GET['text']))时,您期待 GET 元素... -
非常感谢您的回复。我明白了你的意思,但不知道如何实施。假设我使用 jQuery 将用户的输入存储在“tobetranslated”变量中。那么我应该如何修改 AJAX 调用和 tran.php ?
标签: javascript php jquery wordpress get