我得到以下代码在php ajax页面中获取排序数字。现在我想从两个按钮发送单个值。这是我的JavaScript代码
function showUser(str)
{
if (str==""){
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","productlistajax.php?q="+str,true);
xmlhttp.send();
}
现在排序dorpdown菜单
<select id="maxDaysSinceAdded" name="shorting" onchange="showUser(this.value)">
<option selected='selected' value="1">Most Recent</option>
<option value="2">Lowest Price</option>
<option value="3">Highst Price</option>
</select>
这里有两个按钮,我想发送单个值以及上面的排序ID。
<button type="button" name="buttonpassvalue" value="-1" onclick="showUser(this.value)"><< Previous</button>
<button type="button" name="buttonpassvalue" value="1" onclick="showUser(this.value)">Next >> </button>
注:
请注意,当我按下一个时,它应该从之前的总数中加1,如果我按下之前那么它将从总数减少1。
如果可能的话,在达到-1时禁用上一个按钮。
感谢最好的问候,
答案 0 :(得分:0)
简单,
将sort select [maxDaysSinceAdded]的值存储到局部变量中并将其传递给ajax调用。
在ajax请求中,您需要再添加一个由'&amp;'分隔的变量。
var sortVal = document.getElementById("maxDaysSinceAdded").value();
xmlhttp.open("GET","productlistajax.php?q="+str+"&sort="+sortVal ,true);
xmlhttp.send();
要禁用上一个按钮,请参阅str&lt; 0 [即负值]
为上一个按钮指定一个id属性id =“buttonpassprevious”
if(str < 0){
document.getElementById("buttonpassprevious").disabled = true; // Disable
}else{
document.getElementById("buttonpassprevious").disabled = false; // Enable
}
在php结束时,您可以使用引用变量来获取这两个值。
<?php
$buttonVal = $_GET['str'];
$sortVal = $_GET['sort']
?>
提问者似乎是初学者,因此我将答案扩展到完整性的基本级别。专家请原谅。
答案 1 :(得分:0)
如果你的按钮确实减少/增加,那么就像这样:
<select id="maxDaysSinceAdded" name="shorting" onchange="showUser()">
<option selected='selected' value="1">Most Recent</option>
<option value="2">Lowest Price</option>
<option value="3">Highst Price</option>
</select>
<button type="button" name="buttonpassvalue" value="-1" onclick="showUser(this.value)"><< Previous</button>
<button type="button" name="buttonpassvalue" value="1" onclick="showUser(this.value)">Next >> </button>
<script>
function showUser(modifier) {
// Modifier is the inc/dec value which is optional - default to zero?
var bpv = modifier || 0;
// Str is always there so just grab it from select
var str = document.getElementById("maxDaysSinceAdded").value;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "productlistajax.php?q=" + str + "&buttonpassvalue=" + bpv, true);
xmlhttp.send();
}
</script>
但除非您知道正在修改的内容的当前值,否则无法禁用这些按钮。但我可能不清楚你的目标。
答案 2 :(得分:0)
this.value = parseInt(this.value)+1会将1添加到您之前的值
<button type="button" name="buttonpassvalue" value="-1" onclick="showUser(this.value);this.value=parseInt(this.value)-1;"><< Previous</button>
<button type="button" name="buttonpassvalue" value="1" onclick="showUser(this.value);this.value=parseInt(this.value)+1;">Next >> </button>