【发布时间】:2009-02-13 05:23:51
【问题描述】:
我正在尝试向 php 脚本发送一些内容以通过 ajax 存储在数据库中。我正在使用 jQuery 框架。我想使用页面上的链接来发送信息。我在编写发送和接收信息的函数时遇到问题,我尝试过的所有内容都是渐近的。
编辑
这个想法是,用户将点击链接,名为“listings”的表中名为“show_online”(一个小整数)的列将更新为 1 或 0(**一个基本的二进制切换!)成功,点击的具体链接会被更新(如果之前发送了1,则设置为0)。
编辑
一个页面上会有 20-30 个这样的链接。我已将每个包含的 div 设置为唯一的 id('onlineStatus')。我宁愿不为每个实例都有一个单独的 js 函数。
非常感谢任何帮助。基本代码如下。
<script type="text/javascript">
function doAjaxPostOnline( shouldPost, bizID ){
load("ajaxPostOnline.php?b='+bizID+'&p='+shouldPost", jsonData, callbackFunction);
function callbackFunction(responseText, textStatus, XMLHttpRequest)
{
// if you need more functionality than just replacing the contents, do it here
}
}
}
</script>
<!-- the link that submits the info -->:
<div id='onlineStatus<?php echo $b_id ?>'>
<a href='#' onclick="doAjaxPostOnline( 0, <?php echo $b_id ?> ); return false;" >Post Online</a>
</div>
ajaxPostOnline.php
<!-- ajaxPostOnline.php ... the page that the form posts to -->
<?php
$id = mysql_real_escape_string($_GET['b']);
$show = mysql_real_escape_string($_GET['p']);
if( $id && ctype_digit($id) && ($show == 1 || $show == 0) ) {
mysql_query( "UPDATE listing SET show_online = $show
WHERE id = $id LIMIT 1" );
}
if($result) {
if($show == '0'){
$return = "<a class='onlineStatus' href='#' onchange='doAjaxPostOnline( 1, <?php echo $b_id ?> ); return false;' >Post Online</a>";
}
if($show == '1'){
$return = "<a class='onlineStatus' href='#' onchange='doAjaxPostOnline( 0, $b_id ); return false;' >Post Online</a>";
}
print json_encode(array("id" => $id, "return" => $return));
}
?>
【问题讨论】:
-
这里的最终目的是拥有所有列表的页面,每个链接旁边都有链接以切换“show_online”状态?
-
是的。目的是将 show_online 列设置为“1”(如果要在线发布列表)和“0”(如果不在线显示)。简单的二进制切换。对不起,如果我混淆了。