我正在尝试在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的初学者。
帮助表示赞赏。
雷
答案 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'];
}