我有一个文本框和一个提交按钮。提交表单时(按下输入或单击按钮),我希望浏览器保留在当前页面上而不重新加载任何内容。
我想从文本字段中获取输入,使用此数据联系 HTTP GET API,然后将 API 的输出返回到输入文本框中,并突出显示输出以便可以将其复制到剪贴板。
我是 jQuery 的新手,所以如果有人愿意编写这个有希望的小代码片段,将不胜感激:)
这应该适合你。你不能 ajax 跨域。
$(function(){
$('#idOfForm').on('submit', function(e){
e = e || window.event;
e.preventDefault();
$.ajax({
url: 'curl.php',
data: $(this).serialize(),
datatype: 'post',
success: function(data){
//do something with returned data
alert(data);
}
});
});
});
卷曲.php:
$url = 'http://apiurl.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch ,CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
$err = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $contents ? $contents : $err;
$('#your_button_id').click(function(e){
e.preventDefault(); //to stay on same page
$.ajax({
type: 'POST',
url: 'your_url',
data: $('#form_id').serialize(),
success: function(response){
//On success you will have responce from server
//Do all yo need with buttons and texts
}
});
});
这段代码说:
您需要将 URL 更改mystring
为服务器期望的任何参数,如果您有多个表单或输入,则需要指定 id 或类(例如form#myid
或form.myclass
)。除此之外,这应该有效。
$('form').submit(function(e){
e.preventDefault();
$.get("/url/from/get/api", {mystring: $('input').val()}, function(data, status) {
$('input').val(data);
$('input').select()
});
return false;
})