Javascript 无法使用jQuery AJAX发送多个数据参数

Javascript 无法使用jQuery AJAX发送多个数据参数,javascript,php,ajax,Javascript,Php,Ajax,我正在尝试使用Ajax将值发送到其他页面 但我无法接受这些价值观,我不知道我错在哪里 这是我的密码 <script type="text/javascript"> function get_more_info() { // Call to ajax function var fval = document.getElementById('get_usecompny').value; var dataString1 = "fval="+fval; alert(fval); var sv

我正在尝试使用Ajax将值发送到其他页面

但我无法接受这些价值观,我不知道我错在哪里

这是我的密码

<script type="text/javascript">
function get_more_info() { // Call to ajax function
var fval = document.getElementById('get_usecompny').value;
var dataString1 = "fval="+fval;
alert(fval);
var sval = document.getElementById('country').value;
var dataString2 = "sval="+sval;
alert(sval);

$.ajax({
    type: "POST",
    url: "getmoreinfo.php", // Name of the php files
    data: "{'data1':'" + dataString1+ "', 'data2':'" + dataString2+ "'}",
    success: function(html)
    {
        $("#get_more_info_dt").html(html);
    }
  });
 }
</script>

函数get\u more\u info(){//调用ajax函数
var fval=document.getElementById('get_usecompny')。值;
var dataString1=“fval=”+fval;
警报(fval);
var sval=document.getElementById('country')。值;
var dataString2=“sval=”+sval;
警报(sval);
$.ajax({
类型:“POST”,
url:“getmoreinfo.php”,//php文件的名称
数据:“{'data1':'”+dataString1+“,'data2':'“+dataString2+”}”,
成功:函数(html)
{
$(“#获取更多信息”)html(html);
}
});
}
在警报中,我收到了这些值,但在“getmoreinfo.php”页面中,我没有收到任何值

这是我的“getmoreinfo.php”页面代码

    if ($_POST) {
      $country = $_POST['fval'];
      $country1 = $_POST['sval'];

      echo  $country1;
      echo "<br>";
      echo  $country;   
      }
if($\u POST){
$country=$_POST['fval'];
$country1=$_POST['sval'];
echo$country1;
回声“
”; 回声$国家; }

请告诉我哪里错了。!抱歉,英语不好

您传递的参数名称与您试图读取参数时使用的名称不同

您的
数据:
参数可以做得更简单,如下所示

<script type="text/javascript">
function get_more_info() { // Call to ajax function
    var fval = document.getElementById('get_usecompny').value;
    var sval = document.getElementById('country').value;

    $.ajax({
        type: "POST",
        url: "getmoreinfo.php", // Name of the php files
        data: {fval: fval, sval: sval},
        success: function(html)
        {
            $("#get_more_info_dt").html(html);
        }
      });
}
</script>

无需创建“dataString”变量。您可以将数据显示为对象:

$.ajax({
    ...
    data: {
        'fval': fval,
        'sval': sval
    },
    ...
});
在PHP中,您可以访问如下数据:

$country = $_POST['fval'];
$country1 = $_POST['sval'];
jqueryajax对象的属性“data”必须是一个简单的对象数据。JQuery将根据请求自动将对象解析为参数:

$.ajax({
    type: "POST",
    url: "getmoreinfo.php",
    data: {
        fval: document.getElementById('get_usecompny').value,
        sval: document.getElementById('country').value
    },
    success: function(html) {
        $("#get_more_info_dt").html(html);
    }
});

您正在发送的密钥是
data1
,而不是
fval
。这是一个重复项,被多次询问:例如,
数据:
值应该是对象
{fval:dataString1,sval:dataString2}
,它应该是一个对象而不是字符串。不要在字段值前加上
“fval=“
”sval=“
。@RiggsFolly这当然可能,但我怀疑OP是否真的想要
“fval=something”
作为参数值。感谢输出是这样的“sval=4 fval=58”,这太棒了,但我得到的输出像“sval=4 fval=58”,我只需要4和58Hmmm,屏幕上的字段中有什么?i、 e.这个返回什么
document.getElementById('get_usecompny')。value
在将屏幕字段的内容传递给PHP之前,您是否删除了我删除的代码
$.ajax({
    type: "POST",
    url: "getmoreinfo.php",
    data: {
        fval: document.getElementById('get_usecompny').value,
        sval: document.getElementById('country').value
    },
    success: function(html) {
        $("#get_more_info_dt").html(html);
    }
});