getsearch.PHP $q = $_GET["q"]; $sql = "select hobbyid,hobby from hobbies where hobby LIKE '%".$q."%' "; if($result=MysqL_query($sql)) { while($row=MysqL_fetch_assoc($result)) { $v = $row['hobbyid']; echo $row['hobby'] . '<input type="checkBox" name="hobby[]" value='.$v.'>'; } }
你可以在下面的代码中看到,每次更改都会触发这个sql(onkeyup).我保留了一个复选框以获得一系列选定的爱好.这些选定的值传递给updatehobby.PHP.
search.PHP echo '<form action="updatehobby.PHP" method="POST"> echo 'Search:<input type="text" onkeyup="showSearch(this.value)" /> <div id="txtSearch" >HERE THE RESULTS FROM getsearch.PHP are shown</div> <input type="submit></form>';
因此,当用户编写新的搜索字符串时,列表会发生变化,因此取消选中前面的复选框.那么即使搜索发生变化,我如何保留以前的复选框并显示它们?
经过一天的尝试,我最终成功地做到了这一点!
请参阅用户在search.PHP中输入搜索字符串,并将查询传递给getsearch.PHP,然后从中回显结果,此结果显示在search.PHP中
因此,我没有使用复选框,而是插入了一个按钮.所以现在每行都有一个按钮而不是
复选框.
<button type="button" onClick="submitform(<?PHP echo $row['hobbyid']; ? >);">Add hobby</button>
现在在search.PHP中我再次使用了另一个ajax函数(submitform)来处理按钮的onclick调用.
当按下按钮添加爱好时,调用ajax函数submitform并插入爱好.
所以基本上我在search.PHP中使用了两个ajax函数,一个用于搜索和填充结果的ajax,另一个用于将其更新到数据库.
解决方法
“选择业余爱好,兴趣爱好
hobby LIKE’%“.$q.”%’或hobbyid in(list_of_hobbies_received_in_request)“
比,在你渲染HTML的循环中 – 检查id是否在接收的id数组中,并为所需的爱好设置检查状态.
(2)或者您可以在javascript中发送请求之前记住复选框状态,并在响应到来之后 – 避免删除所选复选框并检查没有重复项.但看起来这对于获得搜索结果的方式来说将是一个巨大的痛苦.所以,我认为(1)就是你所需要的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。