表单提交将取消URL查询字符串中的一个参数
Form submission dismisses a parameter in my URL query string
我正在为一个客户构建一个web应用程序,现在我正处于系统初稿即将完成的阶段,但我遇到了最后一个问题,这个问题让我远远超出了自己的舒适区。
页面的功能是通过使用跨三个变量的GET请求来通过SQL查询过滤数据,这些变量s、p和g在表单提交时被传递到URL以执行搜索。除了每当我尝试切换滑块时,一切都很好?s参数从URL中删除,导致查询中断(由于某种原因,s未提交)。有关页面可以在这里看到
GET变量&查询-
$pType = $_GET['s'];
$pVal = $_GET['p'];
$gVal = $_GET['g'];
$sql = "SELECT * FROM pumps
WHERE pump_type='$pType'
AND flow_psi <= '$pVal'
AND flow_gpm <= '$gVal'
AND high_psi <= '$pVal'
AND high_gpm <= '$gVal'";
表单-
<form id="pumpSlider" action="<?php echo $_SERVER['PHP_SELF']; ?>?s=<?php echo $pType ?>&p=<?php echo $pVal ?>&g=<?php echo $gVal ?>" method="get" align="center">
<div class="btn-group" data-toggle="buttons-radio">
<button type="submit" class="<?php if( $pType == 'intermittent' ){ echo 'active '; } ?>btn btn-primary waitingUiBut" id="but1" name="s" value="intermittent">INTERMITTENT</button>
<button type="submit" class="<?php if( $pType == 'continuous' ){ echo 'active '; } ?>btn btn-primary waitingUiBut" id="but4" name="s" value="continuous">CONTINUOUS</button>
</div>
<div align="center" class="productSlider">
<p class="inlineLabel">PSI</p><div class="filterSlider" id="psiSlider"></div>
<p class="inlineLabel">GPM</p><div class="filterSlider" id="gpmSlider"></div>
<input id="pS" type="hidden" name="p" value="<?php echo $pVal ?>" />
<input id="gS" type="hidden" name="g" value="<?php echo $gVal ?>" />
</div>
</form>
最后,当滑块值发生变化时,我使用了一些基本的javascript来处理表单的提交事件。
$(document).ready(function() {
$("#psiSlider" ).slider({
// options
start: function (event, ui) {
// code
},
slide: function( event, ui ) {
var curValue = ui.value || initialValueA;
var target = ui.handle || $('.ui-slider-handle');
var tooltip = '<div class="tooltip"><div class="tooltip-inner">' + curValue + '</div><div class="tooltip-arrow"></div></div>';
$(target).html(tooltip);
var valA = $('#psiSlider').slider("value");
document.getElementById('pS').value = valA;
var valB = $('#gpmSlider').slider("value");
document.getElementById('gS').value = valB;
},
change: function(event, ui) {
var val = $('#pS').slider("value");
var val = $('#gS').slider("value");
$('#pumpSlider').submit();
}
});
});
我完全被想法难住了,如果有人有任何意见,我将不胜感激,谢谢。
您的表单具有与action
URL中的参数同名的隐藏输入。由于表单使用method="get"
,输入值被附加到URL,因此URL具有多个同名参数。PHP使用最后一个,它是表单中的值,而不是URL。
如果希望能够区分表单字段和URL参数,请为它们指定不同的名称,或者使用method="post"
。在后一种情况下,可以使用$_GET
检索URL参数,使用$_POST
检索表单输入。
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- 当一个重要的构造函数参数丢失时应该发生什么
- 如何将一个*参数*从JS传递到AS3
- 在Flickr API的标签参数中传递一个变量
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何在mysql查询(NODE.js)中重复使用一个参数
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- Meteor.js只更新一个参数,而不是整个集合
- 将一个函数作为参数传递给javascript中的另一个函数
- Javascript不能在一个命令中使用函数参数
- 带有一个具有函数的参数的Javascript函数
- 如何使用JavaScript's”;应用“;方法,在数组之前添加一个额外的参数
- 必应地图没有'当我向函数添加另一个参数时,t显示
- 如何在HTML按钮中有一个静态onclick参数
- Function.prototype.call和Function.protoype.all只应用一个参数
- 用javascript将参数从一个函数传递到另一个函数
- javascript将函数中一个变量的参数值传递给父函数中的另一个
- Javascript/jQuery获取所有url参数并添加/更改一个参数