【问题标题】:Loading a PHP file and set variable based on selection加载 PHP 文件并根据选择设置变量
【发布时间】:2013-03-30 15:25:00
【问题描述】:

我需要根据用户在一个或多个选择字段中选择的内容,使用 jquery 加载 PHP 文件的内容。

我可以使用...

$("#first-choice").change(function() {
    $("#second-choice").load("getter.php?choice=" + $("#first-choice").val() );
});

...创建变量 'choice' 并在用户设置 'first-choice' 字段时。

但是,如果我想使用基于两个下拉选择器的 2 个变量来设置变量 'choice'(基于#first-choice 的选择)和choice2(基于#second-choice 的选择)。

所以我想加载一个类似 getter.php?choice=first-choice&choice2=second-choice 的 PHP 文件

【问题讨论】:

  • 那么你的问题是什么?
  • 如果用户选择(按顺序),first-choice,然后是second-choice,另一个用户先选择second-choice,然后是first-choice,那么您将如何决定何时加载页面?你需要一些其他的用户交互来加载页面。
  • 好的,这就是我想要做的...我正在使用一个包含多个 XML 提要的 API。第一个提要给出国家,第二个提要给出城市,第三个提要给出城市内的位置。国家信息源将构成第一个下拉选择器。这很容易。但是当用户选择国家时,我需要将第二个选择器与该国所有城市加载,所以我需要调用API来获取所有城市,然后选择城市时,我需要调用另一个返回的XML Feed该城市的位置并将它们显示在第三个选择器中。

标签: php jquery


【解决方案1】:

这是我将如何处理这种情况..

不要将您的选择视为 id。对所有选择选项使用单个类,然后使用基于类的选择器将 .change() 绑定到所有选择。如果这样做,您可以迭代 X 个选择,将它们的 id 用作查询参数变量,并将它们的值用作每个查询值。我在 jsfiddle 上为您创建了一个快速演示。我还在下面为您发布了代码....

Here is my demo on jsfiddle

    <div>
    <select class="php-options" id='first-choice' name='first-choice'>
         <option value='1-0'>choose</option>
        <option value='1-1'>1-1</option>
       <option value='1-2'>1-2</option>
        <option value='1-3'>1-3</option>
        <option value='1-4'>1-4</option>
      <option value='1-5'>1-5</option>
    </select>
</div>
<div>
    <select class="php-options" id='second-choice' name='second-choice'>
        <option value='2-0'>choose</option>
        <option value='2-1'>2-1</option>
       <option value='2-2'>2-2</option>
        <option value='2-3'>2-3</option>
        <option value='2-4'>2-4</option>
      <option value='2-5'>2-5</option>
    </select>
</div>
<div id="request-url"></div>





$(document).ready(function(){
//treat your select options with classes,
//bind change event on each select
$('.php-options').change(function(e){
    var urlValues = [],
        parameterArgs = "";
    //loop selects to build parameters
    $('.php-options').each(function(i,v){
        var optValue = $(this).val(),
            optId=$(this).attr('id'),
            parameter = ""+optId+"="+optValue;
        urlValues.push(parameter);
    });
    //build parameter string
     parameterArgs =urlValues.join("&");

    //output query
    $('#request-url').text('getter.php?'+parameterArgs);        
});

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2016-01-03
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多