[英]javascript how to pass two values to php ajax
我得到以下代码在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时将其禁用。
谢谢您的问候,
这很简单 ,
将sort select [maxDaysSinceAdded]的值存储到本地变量中,并将其传递给ajax调用。
在ajax请求上,您需要再添加一个以'&'分隔的变量。
var sortVal = document.getElementById("maxDaysSinceAdded").value();
xmlhttp.open("GET","productlistajax.php?q="+str+"&sort="+sortVal ,true);
xmlhttp.send();
要禁用上一个按钮,请查看str <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']
?>
发问者似乎是一个初学者,因此我将回答范围扩展到非常基本的级别。 高手请原谅。
如果按钮确实减少/增加,则类似以下内容:
<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>
但是除非您知道要修改的当前值,否则您不能禁用按钮。 但是我可能不清楚您的目标。
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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.