PHP AJAX POST发送多个变量

3
通过ajax post到php,我可以发送多个变量吗?如果可以,语法是什么?
loadXMLDoc("scripts/product_transfer.php?group="+group+"subgroup="+subgroup+"user="+user+,function()

你好!以下是函数代码:

//---------------------------------------------------------------------------------------------------    -----------------------------------------------------------------------
//Function to handle ajax
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("POST",url,true);
xmlhttp.send();
}

你为什么不使用库来简化Ajax请求? - Pekka
@Pekka ... 这就是学习的方式。当然,对于其他任何原因,你都是正确的。 - ty812
我不知道如何创建一个库来更轻松地进行Ajax请求,因为我对Ajax还很陌生。现在,我可以问一下吗?如果可以的话,正确的语法是什么? - David
只需添加 & group="+group+"&subgroup=,你就可以拥有多个变量。 - Dreaded semicolon
1
@Martin,是的,为了学习目的,在基础层面上这样做是可以的。当然,很多时候人们只是跟随错误的(几年前的)教程。 - Pekka
为什么要重复造轮子呢?使用jQuery吧。它提供了所有这些功能,并且易于使用http://api.jquery.com/jQuery.ajax/。 - Altaf Hussain
5个回答

6

是的,你可以这样做,但你忘记了在数值之间添加&符号。你也可以使用POST方法将数据作为参数发送到send()方法。同时,不要忘记对字符串值使用encodeURIComponent()

xmlhttp.open( "POST", url, true );
xmlhttp.send( "group="+encodeURIComponent(group)+
              "&subgroup="+encodeURIComponent(subgroup)+
              "&user="+encodeURIComponent(user) );        

1

试试这个!

loadXMLDoc("scripts/product_transfer.php?group="+group+"&subgroup="+subgroup+"&user="+user+, function() { //Code to run when data is sent back});

1
我已经编写了相关代码,它能够良好地运行。
第一页。
<select name="qt_n1" id="qt_n1" style="width: 100px;" onchange="return q1mrks(this.value,<?php echo $gen1_marks; ?>)">
                                <option>No. of Que.</option>
                                <?php
                                    for($i=1;$i<=25;$i++){?>
                                        <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
                                <?php } ?>
                            </select>

page-2.js

function q1mrks(country,m)
{
  // alert("hellow");
if (country.length==0)
  {
   //alert("hellow"); 
  document.getElementById("q1mrks").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("q1mrks").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","../location/cal_marks.php?q1mrks="+country+"&marks="+m,true);

//mygetrequest.open("GET", "basicform.php?name="+namevalue+"&age="+agevalue, true)
xmlhttp.send();
}

并且我只是在第三页上获得了值

page-3.php

<?php 
    echo $Q1mrks = $_GET['q1mrks'];
    echo $marks = $_GET['marks'];
?>
<div id="q1mrks"></div>

谢谢您。

1

在查询字符串中,您应该在不同的变量之间添加&或'&amp;'。

scripts/product_transfer.php?group="+group+"&subgroup="+subgroup+"&user="+user


0
data="postvarname1="+varvalue+"postvarname2"+var

等等……


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接