我正在尝试将输入字段中写入的文本与数据库中的"UserID"
进行比较,以了解在单击按钮时在哪里添加1个点。向数据库中添加新用户不是问题,但当我想"更新"数据库时,什么都没发生,似乎我无法让$_POST['UserID'];
在我的addPts.php
中工作?下面是我代码中的一个示例:
blabla.html
<html>
<head>
<script type="text/javascript" src="blabla.js"></script>
</head>
<body>
<nav>
<li>
<form action="addToDB.php" method="post" target="hidden-form">
<input type="text" id="UserID" name="UserID" placeholder="Your ID Here" style="width:290px"/>
<input type="submit" id="submit" name="submit" value="Add to DB"/>
</form>
</li>
</nav>
<section id="mainframe">
<iframe src="blabla2.html" name="myIFRAME"></iframe>
</section>
<iframe style="display:none" name="hidden-form"></iframe>
<button><a id="theLink" href="http://www.stackoverflow.com" target="myIFRAME">Press me for 1pts</a></button>
</body>
</html>
blabla2.html
<html>
<head>
</head>
<body>
Start message in iFrame
</body>
</html>
blabla.js
$(function (){
$('#theLink').click(function(){
var request = $.ajax({
type: "POST",
url: "../bla/addPts.php"
});
request.done(function( msg ) {
alert('1 Point added');
return;
});
request.fail(function() {
alert( "Request failed.. " );
});
});
});
addToDB.php
<?php
$localhost = "localhost";
$dbuser = "blabla";
$dbpass = "blablabla";
$dbname = "bla";
$connect = mysql_connect($localhost, $dbuser, $dbpass);
mysql_select_db("$dbname", $connect);
$UserID = $_POST['UserID'];
$checkIDLenght = strlen($UserID);
$messageNewMember = "WELCOME! New User!";
$messageOldMember = "Welcome back!";
$insert = 'INSERT into membersBLA(UserID) VALUES("'.$UserID.'")';
$query = mysql_query("SELECT UserID FROM membersBLA WHERE UserID='".$UserID."'");
if (mysql_num_rows($query) != 0)
{
echo "<script type='text/javascript'>alert('$messageOldMember');</script>";
}
else {
mysql_query($insert);
echo "<script type='text/javascript'>alert('$messageNewMember');</script>";
}
?>
addPts.php
<?php
$localhost = "localhost";
$dbuser = "blabla";
$dbpass = "blablabla";
$dbname = "bla";
$connect = mysql_connect($localhost, $dbuser, $dbpass);
mysql_select_db("$dbname", $connect);
$user = $_POST['UserID'];
mysql_query("UPDATE membersBLA SET UserPts = UserPts + 1 WHERE UserID='".$user."'");
?>
如果我手动键入"WHERE UserID='Name'");
",它将对数据库"UPDATE"
起作用,然后它将为我所写的名称更新"UserPts"
。。但是从输入中获取键入的名称进行比较似乎不起作用?
试试这个//检索userid的值并使用jQuery.ajax()的数据参数
$(function (){
$('#theLink').click(function(){
var UserID=jQuery("#UserID").val();
var request = $.ajax({
type: "POST",
url: "../bla/addPts.php",
data:{'UserID': UserID},
});
request.done(function( msg ) {
alert('1 Point added');
return;
});
request.fail(function() {
alert( "Request failed.. " );
});
});
});