- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 php-ajax 页面,用户在其中写入 search.php 中的搜索字符串,列表在 getsearch.php 中回显。 getsearch.php 的结果显示在使用 ajax 的 search.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>';
因此,当用户输入新的搜索字符串时,列表会发生变化,因此之前的复选框会被取消选中。那么,即使搜索发生变化,我该如何保留之前的复选框并显示它们呢?
经过1天的努力终于成功了!
看到用户在 search.php 中输入搜索字符串,查询被传递到 getsearch.php,结果从那里回显,结果显示在 search.php 中
所以我没有使用复选框,而是插入了一个按钮。所以现在每一行都有一个按钮而不是复选框。
<button type="button" onClick="submitform(<?php echo $row['hobbyid']; ? >);">Add hobby</button>
现在在 search.php 中,我再次使用另一个 ajax 函数(提交表单)来处理按钮的 onclick 调用。当按下添加爱好按钮时,调用 ajax 函数 submitform 并插入爱好。
所以基本上我在 search.php 中使用了两个 ajax 函数,一个 ajax 用于搜索和填充结果,另一个用于将结果更新到数据库。
最佳答案
(1) 您可以在您的搜索请求中发送复选框状态并在 PHP 代码中设置选中/未选中并将其包含在您对数据库的请求中,这样它就像
"select hobbyid,hobby from hobbies
其中 hobby LIKE '%".$q."%' 或 hobbyid in(list_of_hobbies_received_in_request) "
然后,在呈现 HTML 的循环中 - 检查 id 是否在接收到的 id 数组中,并为所需的爱好设置检查状态。
(2) 或者您可以在使用 javascript 发送请求之前和响应到来之后记住复选框状态 - 避免删除选定的复选框并检查是否没有重复项。但看起来这将是您如何获得搜索结果的一大难题。所以,我认为 (1) 是您所需要的。
关于php - ajax 复选框 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218170/
我是一名优秀的程序员,十分优秀!