Php Javascript-link、ajax、jquery、cursor是一个文本编辑器,而不是一只手/手指,即使代码工作正常,它也总是返回错误结果
现在这真的让人困惑了。。。在不离开页面的情况下更新mysql数据库。。。。我有3位代码。head标签中的javascript、body中的action按钮以及要在另一个页面上执行的代码。以下是三个部分:Php Javascript-link、ajax、jquery、cursor是一个文本编辑器,而不是一只手/手指,即使代码工作正常,它也总是返回错误结果,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,现在这真的让人困惑了。。。在不离开页面的情况下更新mysql数据库。。。。我有3位代码。head标签中的javascript、body中的action按钮以及要在另一个页面上执行的代码。以下是三个部分: <script type="text/javascript" src="jquery-1.4.2.js"></script> <script type="text/javascript"> function addItemToUsersList(itemId
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
function addItemToUsersList(itemId)
{
$.ajax({
'url': 'member-bucketadd-exec.php',
'type': 'GET',
'dataType': 'json',
'data': {itemid: itemId},
'success': function(data)
{
if(data.status)
{
if(data.added)
{
$("span#success"+itemId).attr("innerHTML","Item added to your personal list");
alert("Item added to your list!");
}
else
{
$("span#success"+itemId).attr("innerHTML","This item is already on your list");
alert("This item is already on your list!");
}
}
},
beforeSend: function()
{
$("span#success"+itemId).attr("innerHTML","Adding item to your bucketlist...");
}
,'error': function(data)
{
// what happens if the request fails.
$("span#success"+itemId).attr("innerHTML","An error occureed");
alert("On your list!");
}
});
}
</script>
函数AddItemToUserList(itemId)
{
$.ajax({
'url':'member bucketadd exec.php',
'type':'GET',
“数据类型”:“json”,
'data':{itemid:itemid},
“成功”:函数(数据)
{
if(数据状态)
{
如果(添加数据)
{
$(“span#success”+itemId).attr(“innerHTML”,“添加到个人列表中的项目”);
警报(“已添加到列表中的项目!”);
}
其他的
{
$(“span#success”+itemId).attr(“innerHTML”,“此项已在您的列表中”);
警报(“此项目已在您的列表中!”);
}
}
},
beforeSend:function()
{
$(“span#success”+itemId).attr(“innerHTML”,“将项目添加到bucketlist…”);
}
,“错误”:函数(数据)
{
//如果请求失败会发生什么。
$(“span#success”+itemId).attr(“innerHTML”,“发生错误”);
警惕(“在你的名单上!”);
}
});
}
动作按钮
<a onclick="addItemToUsersList(<?php echo $itemid ; ?>)">Add<img src='images/plus-green.png' /> </a>
查看php手册中的代码
$bucketlist = mysql_fetch_array($bucketlist)
将为FALSE,没有行。手/手指不会出现。
因为它没有定义为默认情况下为没有href属性的锚显示。只需将href=“#”
添加到您的锚点,或者将光标:指针
样式分配到您的锚点,它就会指向您的锚点
返回错误结果
正如Thau指出的,在ajax请求处理代码中,在查询中使用了两个变量$\u GET['userid']
和$\u GET['itemid']
,但在请求中只传递itemid。这就是错误的原因吗?你发现了吗?a)检查你的.ajax请求:
<script type="text/javascript" src="./jquery-1.4.2.min.js"></script>
<script type="text/javascript">
function addItemToUsersList(itemId) {
$.ajax({
'url': 'http://localhost/test/add_member.php', /*test6ed in my PC*/
'type': 'GET', 'dataType': 'json',
'data': {itemid: itemid, userid: 1}, /*Added itemid, userid */
/*Params in 'success function*/
'success': function(data, textStatus, XMLHttpRequest){
if(data.status) {
if(data.added) $("#success").attr("innerHTML","Item added");
else $("#success").attr("innerHTML","Already on your list");
}
},
beforeSend: function(XMLHttpRequest){
$("#success").attr("innerHTML","Adding item ...");
},
'error': function(XMLHttpRequest, textStatus, errorThrown) {
$("#success").attr("innerHTML","An error occureed");
alert("On your list!");
}
});
}
</script>
<a href="javascript:addItemToUsersList(1)">Add</a>
<span id="success"></span>
为避免href=“#”
导致页面跳转到顶部,您的onclick
函数需要返回false
。这会告诉浏览器不要继续执行标准href操作。您可以通过几种方式来实现这一点,包括添加returnfalse
到addItemToUserList()
的末尾,甚至直接在onclick
代码中,如下所示:
onclick="addItemToUsersList(<?php echo $itemid ; ?>); return false;"
onclick=“addItemToUserList();返回false;”
你好,Dan,因为“在您的列表上!”正在发出警报,所以错误条件正在满足。它实际上并不意味着该项是否在用户列表中。要调试,请将echo放在“此处”;打印(bucketlist);退出
after$bucketlist=mysql\u fetch\u数组($bucketlist)
并检查firebug控制台下的响应部分,了解ajax请求谢谢您的回复!(还有其他人!)。。。params=itemid25。响应部分为空。正如Thau在代码中指出的那样,我在a href链接后添加了span id success,并再次检查了响应,这就是我得到的。。。。这里的数组([0]=>284[memberbucketid]=>284[1]=>1[userid]=>1[2]=>25[bucketid]=>25[3]=>0[complete]=>0)看起来都是正确的。memberbucketid只是该表的id列,因此284很好,userid 1和bucketid 25以及完整的0都是正确的。我认为这不是问题。href=“#”工作得很好!通过引用会话用户名……$user\u data=“”.$\u会话['username']”,从数据库中获取用户ID$fetch_users_data=mysql_fetch_对象(mysql_查询(“从members
WHEREusername
='“$user_data.””)或死(mysql_error())$userid=“”.$fetch_users_data->userid。“”;啊,a href=“#”使页面跳转到顶部,这正是我试图从上面开始的,lol.may你可以将你的文件发送给Dan测试。
$userid = $_GET['userid' ] ? $_GET['userid']: 0 ;
$bucketid = $_GET['itemid'] ? $_GET['itemid']: 0 ;
if(!$bucketid || !$userid )
echo json_encode( array("status" => false, "added" => false));
$sql = "SELECT * FROM membersbuckets where userid = $userid AND bucketid = $bucketid";
$bucketlist = mysql_query( $sql ) or die(mysql_error());
$bucketlist = mysql_fetch_array($bucketlist) ; //return FALSE in no rows
if($bucketlist){
$insert_sql = "INSERT INTO
membersbuckets
(memberbucketid, userid, bucketid, complete)
VALUES ('', '$userid', '$bucketid', '0')" ;
mysql_query($insert_sql);
//return with an echo
echo json_encode(array("status" => true, "added" => true));
}else {
echo json_encode(array("status" => true, "added" => false));
}
onclick="addItemToUsersList(<?php echo $itemid ; ?>); return false;"