多个下拉列表形成请求

时间:2018-06-04 12:14:44

标签: php jquery dropdown

Hello StackOverflow社区,

我正在尝试将半智能系统整合到我们在Google AdWords上的活动进行报告;

我正在尝试将此系统集成到我们的自定义CRM中。

这个想法是,有多个下拉列表有助于形成一个句子,这个句子基本上是你正在做的请求,然后返回这个请求的答案。

例如:

(什么)(Where)where(Metric)(When)(比较?)

所有这些都是下拉菜单,并且会在选择时创建一个句子。例如:

X-FR *中的产品广告组*从3月10日到4月10日成本超过10%

* X-FR将是我在法国市场的AdWords帐户

基本上,每个下拉列表都有多个答案,但并非所有答案都可以与之前的下拉列表一起使用。

我正努力做到这一点让这件事尽可能有意义,但我承认这并不容易。

我想弄清楚我需要你帮助的是,如果你能想象我也做了什么,你将如何编写这个?我是否需要为每个下拉列表中的每个答案分配一个ID,然后创建一些可能的链数组?例如

如果产品是001,X-FR是032,成本是077,超过102等...那么你基本上可以找出所有可能的解决方案,如“[001,032,077,102,...] =这个答案”?

还有其他关于使用类似物(有点像树)的想法吗?

请注意我有基本的开发知识,我不是专业人士,我将有一个团队与我一起工作。

提前多多感谢, -Mathieu

1 个答案:

答案 0 :(得分:0)

也许是这样的:

function get_select_value_array(){
  var select_arr=[];
  $('select').each(function(){
	var this_id=$(this).attr('id');
	var this_val=$(this).val();
	if(this_id=='Product'){
		select_arr[0]=this_val;
	}else if(this_id=='X-FR'){
		select_arr[1]=this_val;
	}else if(this_id=='Cost'){
		select_arr[2]=this_val;
	}
  });
  return select_arr;
}

 function compare_arrays(_arr1, arr2){
 	 return ($(_arr1).not(arr2).length === 0 && $(arr2).not(_arr1).length === 0);
 }

 var etalon_arr=["001", "032", "077"];
 var select_arr=get_select_value_array();

 /* console.log(etalon_arr, select_arr);*/

 if(compare_arrays(select_arr, etalon_arr)){
 	console.log('Is Good!!!');
 }
       div{
       	 display:inline-block;
       	 border-style:solid;
       	 border-width:2px;
       	 border-color:gray;
       	 padding:10px;
       }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

   <div>
     <select id="Product">
        <option value="001">Product 001</option>
        <option value="002">Product 002</option>
        <option value="003">Product 003</option>
     </select>
   </div>

   <div>
     <select id="X-FR">
        <option value="032">X-FR 032</option>
        <option value="033">X-FR 033</option>
        <option value="034">X-FR 034</option>
     </select>
   </div>

   <div>
     <select id="Cost">
        <option value="077">Cost 077</option>
        <option value="078">Cost 078</option>
        <option value="079">Cost 079</option>
     </select>
   </div>