0

我正在尝试在 Intranet 站点的 php 目录中构建一个简单的“我查看了这个”函数。

因此,当用户阅读该页面时,他们单击底部的一个按钮,上面写着“我已阅读此内容”,该按钮将用户的用户 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>

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

thispage.php?itemid=455&userid=999&submit=保存

但是没有调用“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);

?>

我猜 URL 参数只是因为表单而出现,并且 JavaScript 有问题。

我只是 JS 的初学者。

帮助表示赞赏。

射线。

4

1 回答 1

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'];
}
于 2013-02-05T20:44:29.003 回答