微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax复选框php

我有一个PHP-ajax页面,用户在search.PHP中写入搜索字符串,列表在getsearch.PHP中回显.并使用ajax在search.PHP显示getsearch.PHP的结果但每行都有复选框.

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,另一个用于将其更新到数据库.

解决方法

(1)您可以在搜索请求中发送复选框状态,并在PHP代码中设置已选中/未选中状态,并将其包含在您对数据库的请求中,以便它可以像

“选择业余爱好,兴趣爱好
 hobby LIKE’%“.$q.”%’或hobbyid in(list_of_hobbies_received_in_request)“

比,在你渲染HTML的循环中 – 检查id是否在接收的id数组中,并为所需的爱好设置检查状态.

(2)或者您可以在javascript中发送请求之前记住复选框状态,并在响应到来之后 – 避免删除所选复选框并检查没有重复项.但看起来这对于获得搜索结果的方式来说将是一个巨大的痛苦.所以,我认为(1)就是你所需要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐