繁体   English   中英

javascript如何将两个值传递给php ajax

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM