【问题标题】:How to pass jQuery variable using Ajax get request?如何使用 Ajax 获取请求传递 jQuery 变量?
【发布时间】:2012-04-18 11:11:37
【问题描述】:

我有一个由 jQuery 滑块生成的值。我需要将其变量传递给http://domain.com/index.php?rich=3&sweet=6 形式的url。我需要使用 Ajax 的 get 请求将 javascript 变量(丰富而甜蜜)发送到 url。

我的 index.php 文件中有以下 javascript(变量由 select/slider HTML 代码设置的赋值),selectToUISlider() 将滑块耦合到下拉菜单:

<script type="text/javascript">
$(document).ready(function () {

$('#rich').selectToUISlider({
labels:7, sliderOptions: {
stop: function(e,ui) {
  var richValue = $('#rich').val();    
  }}}).next();

$('#sweet').selectToUISlider({
labels:7, sliderOptions: {
stop: function(e,ui) {
  var sweetValue = $('#sweet').val();
  }}}).next();          

}
</script>
........

下面的 HTML 代码(我省略了 'sweet' 选择代码)

    <form action="index.php" name="form1" method="GET">
<!-- demo 1 -->
<fieldset>

        <select name="rich" id="rich" onchange="this.form.submit()">
        <optgroup label="Not too Rich">
        <?php $rich1 .= '<option'.(isset($_GET['rich']) && $_GET['rich']=='1' ? ' selected ' : ' ').'value="1">'.'Not too Rich'.'</option>'."\n"; ?>
        <?php echo $rich1 ?>

          .........................

        <?php $rich7 .= '<option'.(isset($_GET['rich']) && $_GET['rich']=='7' ? ' selected ' : ' ').'value="7">'.'Super Rich'.'</option>'."\n"; ?>
        <?php echo $rich7 ?>

        </optgroup>
        </select>
    </fieldset>

我的理解是我必须这样做:

$.get('index.php?rich='+ $('#rich').val() , function(data) {
                            $('#rich').html(data);
                        });

以某种方式进入代码,但我不知道如何。

【问题讨论】:

  • 应该可以。你有什么错误吗?您是否尝试传递多个表单元素的值,那么这可能会有所帮助,api.jquery.com/serialize
  • 是的多个值,我需要看看如何拼凑包括序列化在内的所有内容
  • 您能简要解释一下您要做什么吗?哪个滑块库?在 jsfiddle.net 上创建一个小型工作演示,它将更准确地解释您的问题。
  • 请阅读您的信息。我找到了解决办法。对于#rich.selecttoslider:我读入了变量richValue 和sweetValue,我使用了get.() 函数,然后我使用window.location 将参数设置为richValue 和sweetValue 的值。对于#sweet.selecttoslider:我做了同样的事情,但省略了get.()。
  • 目标是使用灯丝组中的 jquery 滑块向 url 添加参数(例如 ?rich=3&sweet=4)。这使我可以将滑块输出读入 PHP 并进行处理

标签: jquery ajax get slider


【解决方案1】:

是的,但更合适的方式是:

$.get('index.php', {rich : $('#rich :selected').val()}, function(data) {
    //so something with data
});

【讨论】:

    【解决方案2】:

    Denis Ermolin 是对的,但为什么要“GET”请求?你会在 IE 中遇到兑现问题 - IE 有时喜欢缓存 url。使用“POST” - IE 不会兑现。

    $.post('index.php', {rich : $('#rich :selected').val()}, function(data) {
        //so something with data
    });
    

    【讨论】:

    • 我的评论是针对问题作者)您的变体当然是正确的。
    • 我认为 GET 会将变量放在 url 中并充当代理/中介,这也是使用 PHP 使用变量的一种方法。发布的 POST 语句不会改变任何内容:resumeicons.com/test1/index.php。移动滑块时 url 仍然没有改变
    • 您没有关于滑块移动的代码。您在主文件中只有 1 次调用 $.get 。而且效果很好。我认为你对你的代码有点困惑。
    • 您必须阅读有关 Jquery UI Slider 的文档。我不记得了。它有一些事件 onChange。在官网阅读。
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 2014-08-04
    • 2018-07-14
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    相关资源
    最近更新 更多