使用AJAX将POST(或GET)数据发送到PHP脚本

时间:2013-02-05 20:39:55

标签: php ajax post get

我正在尝试在php目录中为Intranet站点构建一个简单的“我查看过此”功能。

因此,当用户阅读该页面时,他们会点击底部的一个按钮,上面写着“我已经读过这个”,将用户的用户ID和页面ID发送到一个简单的数据库表,然后我可以为其他人收集使用

我正在尝试使用AJAX和PHP。

这是我的代码:

<SCRIPT LANGUAGE="JavaScript">
function viewSave(form) {
var itemid = <?php echo $itemid; ?>;
var userid = <?php echo $userid; ?>;

var xmlhttp;

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

 xmlhttp.open("GET","saveView.php?q=itemid="+itemid+"&userid="+userid,true);
 xmlhttp.send();
}

</script>   

我已经设置了一个隐藏字段的简单表单:

<form onSubmit="return viewSave(this)" >
<input type="submit" name="submit" value="Save" />
</form>

当我点击提交时,网址会发生变化,我会得到我的变量,如下所示:

  

thispage.php的itemid = 455&安培;用户ID = 999&安培;提交=保存

但未调用“saveView.php”且未发送数据。

这是saveView.php中的内容:

<?php


$userid =$_GET["userid"];
$itemid = $_GET["itemid"];

  // Connect to the database
            $dbc = mysqli_connect('localhost', 'root', '', 'viewsave');

            // Write the data to the database
            $query = "INSERT INTO saves (entryID, userid, itemid) VALUES ( '0', '$userid', '$itemid')";
            mysqli_query($dbc, $query);

&GT;

我猜测URL params只是因为表单而出现,并且JavaScript出现了问题。

我只是JS的初学者。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

首先,您的php文件需要一个名称:

xmlhttp.open("GET","save.php?

然后您的参数需要名称:

xmlhttp.open("GET","save.php?q=itemid="+itemid+"&userid="+userid,true);

然后,在PHP中,您可以使用$_GET来获取数据(并检查它是一个数字):

if(array_key_exists('itemid', $_GET) && !is_nan($_GET['itemid'])) {
    $itemid = $_GET['itemid'];
}