0

我有一个文本框和一个提交按钮。提交表单时(按下输入或单击按钮),我希望浏览器保留在当前页面上而不重新加载任何内容。

我想从文本字段中获取输入,使用此数据联系 HTTP GET API,然后将 API 的输出返回到输入文本框中,并突出显示输出以便可以将其复制到剪贴板。

我是 jQuery 的新手,所以如果有人愿意编写这个有希望的小代码片段,将不胜感激:)

4

3 回答 3

1

这应该适合你。你不能 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;
于 2012-05-26T00:56:53.713 回答
1
$('#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
    }
  });
});
于 2012-05-26T00:59:48.330 回答
1

这段代码说:

  • 当表单提交...
  • 不要做默认的事情(提交表格)......
  • 向具有特定值的指定服务器发送 GET 请求,然后当它完成时运行一个函数...
  • 将数据放入输入并...
  • 选择输入中的文本。

您需要将 URL 更改mystring为服务器期望的任何参数,如果您有多个表单或输入,则需要指定 id 或类(例如form#myidform.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;
})

在http://api.jquery.com/jQuery.get/阅读更多内容

于 2012-05-26T01:00:59.657 回答