Php没有收到JavaScript的帖子

时间:2016-11-26 09:19:51

标签: javascript php

我已经在我的网站的其他地方实施了相同的设置,并且无法弄清楚这次为什么它不能正常工作。

当用户点击接受按钮时,它会调用一个JavaScript函数acceptOrder(orderID),它将orderID传递到php页面以更新数据库中的记录。

在JavaScript中分配了orderID,但它没有到达php。 POST上的Var_dump什么都没有显示,$ _POST也没有显示(' orderID')。我甚至尝试过向php发送一个整数,以防var出现问题,但没有区别。

Js

function acceptOrder(orderID) {
var orderID=orderID;
console.log("assigned: "+orderID);
var xmlhttp;

// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest)
{
   xmlhttp=new XMLHttpRequest();
}
// code for IE6, IE5
else
{
   xmlhttp=new ActiveXObject("Microsoft.    }

xmlhttp.onreadystatechange=function()
{
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
   {
      console.log (xmlhttp.responseText);
   }
}
xmlhttp.open("POST","acceptorder.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-rule encoded");
xmlhttp.send(orderID);
console.log(orderID+" sent");
//location.reload();
//console.log("reload");
}

<?php
require_once("config1412/class.shop.php");
session_start();
$shop = new SHOP();

echo var_dump($_POST);
//$orderID = $_POST['orderID'];
//echo "orderId var = ".$orderID."<br/>post ".$_POST['orderID'];

//$shop->acceptOrder($orderID);
?>

毋庸置疑,我已经搜索过,并且在其他地方看不到任何解决方案。

非常感谢

4 个答案:

答案 0 :(得分:0)

请替换此行

xmlhttp=new ActiveXObject("Microsoft.    } 

跟着这一行

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

答案 1 :(得分:0)

你应该在你的js

中写这个
function acceptOrder(orderID) {
var orderID=orderID;
console.log("assigned: "+orderID);
var xmlhttp;

// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest)
{
   xmlhttp=new XMLHttpRequest();
}
// code for IE6, IE5
else
{
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }

xmlhttp.onreadystatechange=function()
{
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
   {
      console.log (xmlhttp.responseText);
   }
}
xmlhttp.open("POST","acceptorder.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-rule encoded");
xmlhttp.send(orderID);
console.log(orderID+" sent");
//location.reload();
//console.log("reload");
}

答案 2 :(得分:0)

我建议你使用jQuery进行ajax调用。它更容易设置和简单。特别是,特别是因为它非常容易为初学者设置。对于想要安装ajax的人来说,这是一种简单的方法。我每次都想在代码中使用ajax时使用它。这是一个链接:

http://api.jquery.com/jquery.ajax/

只需将标记包含在jQuery中,然后使用一个javascript命令调用ajax。

答案 3 :(得分:0)

我可以看到,你没有为orderID设置变量名,更改代码行:

margin-left:150px;

为:

xmlhttp.send(orderID);

如果它只是缺少orderID的SQL错误,而且所有其他的通行证都没问题,那么它就是你的解决方案。正如你在评论中所说的“我只是因为变量orderID为空而得到sql错误”。 你只缺少命名发送数据,这就是为什么它是空的。