我有一个 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/
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我有以下不起作用的代码:=form_for(resource,:as=>resource_name,:url=>session_path(resource_name),:html=>{:class=>"well"})do|f|=f.label:email=f.email_field:email=f.label:password=f.password_field:password-ifdevise_mapping.rememberable?%p=f.label:remember_me,:class=>"checkbox"=f.check_box:remember_me,:class=>"
我正在尝试以嵌套形式实现HABTM复选框。目前,我有3个模型。主题、类(class)和小组。协会如下:每个科目都有很多课。每节课都属于许多小组。现在,我正在尝试在单个创建和编辑表单上实现它们。这样一节课嵌套在主题中,每节课都有一个组复选框列表来实现HABTM关系。我在实现HABTM关系时遇到了麻烦,因为每个科目都有很多类(class),而且我不确定如何区分不同的类(class)。为了进一步详细说明,我能够使嵌套表单正常工作,但我无法让HABTM复选框保存到正确的类(class)中。以下代码示例是我的HABTM复选框实现。目前,我已经使用“subject[lessons_attribut
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。有没有学习Ajax(jQuery)和Rails3的好资源?
我正在使用一个用RubyonRails构建的应用程序,目前错误处理非常差。如果通过ajax执行Controller方法,并且该方法导致500(或404或任何其他响应),则呈现500.html页面并将其作为AJAX请求的结果返回。显然,javascript不知道如何处理该HTML,网页看起来只是在等待响应。在AJAX调用期间发生错误时,rails是否有一种简单的方法来呈现error.rjs模板? 最佳答案 您可以在Controller的rescue_action或rescue_action_in_public方法中使用respond_
我正在使用Rails4.0。我正在发送这样的事件(注意:remote=>true):true,:class=>"rate-btnyes-btnbtnbtn-defaultbtn-sm"}%>我的Controller看起来像这样:defratevideo=Video.find_by(hashed_id:params[:id])action=params[:yesno]putsvideo.hashed_idputsactionrespond_todo|format|if(action=='yes')new_rating=video.rating==1?0:1video.update(is_
AB我在我的代码中使用了上面提到的,当我点击提交时,如果checked则需要1,如果没有,则需要0检查并将其存储在db中。如果checked我如何存储一个string像AB和nil如果notchecked我想将该字符串存储在db而不是0和1中? 最佳答案 这是这个辅助方法的定义:check_box(object_name,method,options={},checked_value="1",unchecked_value="0")所以我想你需要这样的东西:AB但在您的Rails应用程序中,您会得到字符串'AB'和字符串'nil',