gpt4 book ai didi

php - ajax 复选框 php

转载 作者:可可西里 更新时间:2023-10-31 23:33:06 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com