将列表视图的值传递给ajax
Pass value of list view to ajax
我有一个动态创建的列表。创建列表的部分代码是:
<ul>
<?
foreach ($folders as $folder)
{
$folder = str_replace("{imap.gmail.com:993/imap/ssl}", "", $folder);
$folder2 = str_replace("[Gmail]/", "", $folder);
?>
<li>
<a><div id="box"><? echo $folder2; ?> </div></a>
</li>
<?}
</ul>
<div id="maillist"></div>
$folder
GMAIL/All Mail
GMAIL/Drafts
GMAIL/Important
$folder2
All Mail
Drafts
Important
我想要的是,当用户点击所有邮件,值对应于它(在这种情况下:GMAIL/所有邮件)应该通过ajax传递到另一个脚本。对于list
中的其他值也应遵循相同的过程。ajax代码<script>
$(document).ready(function(){
$('#box').change(function(){
var boxid = $('#box').val();
console.log($('#box'))
if(boxid != 0)
{
$.ajax({
type:'post',
url:'a_fetchmaillist.php',
data:{id:boxid},
cache:false,
success: function(returndata){
$('#maillist').html(returndata);
console.log(returndata)
}
});
}
})
})
</script>
有谁能告诉我是否有可能做我想做的,如果是,那么它将如何完成
首先不要多次分配相同的id ,而是设置一个类(例如box
)
然后为特定文件夹指定data属性(例如:box-allMails
)并在更改时选择该属性:
foreach ($folders as $folder)
{
$folder = str_replace("{imap.gmail.com:993/imap/ssl}", "", $folder);
$folder2 = str_replace("[Gmail]/", "", $folder);
?>
<li>
<div class="box" data-folder="<? echo $folder2 ?>"><? echo $folder2; ?></div>
</li>
<?}
Then on change:
$(document).on('click', '.box', function() {
var folder = $(this).attr('data-folder');
// ajax call..
});
重要:你必须听'click'事件而不是'change',因为你点击了一个div,而不是一个输入(我已经改变了代码)。
事件委托:注意代码:
$(document).on('click', '.dynamic-element', function() { .. })
代替:
$('.element').on('click', function() { .. });
第二个不行因为你是动态创建元素的
Clickable:除非您想重定向到另一个页面,否则您不必插入锚标记以使列表项可单击。在您的情况下,您可以为.box
div设置样式,以便获得像这样的光标:
.box { cursor:pointer }
jQuery会处理剩下的(查看示例)
$(document).on('click', '.box', function() {
var folder = $(this).attr('data-folder');
alert('You clicked on: ' + folder);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li><div class="box" data-folder="folderOne">Folder One</div></li>
<li><div class="box" data-folder="folderTwo">Folder Two</div></li>
<li><div class="box" data-folder="folderThree">Folder Three</div></li>
<li><div class="box" data-folder="folderFour">Folder Four</div></li>
</ul>
相关文章:
- 需要将select标记选项值传递给ajax函数
- 使用Ajax将PHP值传递给javascript
- 可以't使用ajax调用将值传递给Web服务
- jQuery.ajax未将值传递给php变量
- 如何通过jquery将cakehp-formhelper输入值传递给ajax
- 将 HTML 中用户输入的值传递给 jQuery.Ajax
- 获取两个 UI 滑块在其中一个更改时将值传递给 Ajax
- 将 ID 值传递给 AJAX 页面
- 将值与MySQL一起传递,将检索到的值作为JavaScript中的隐藏值传递给AJAX函数
- 如何使用 AJAX 调用将表单值传递给 PHP 变量
- 通过 AJAX 将两个值传递给 PHP 文件
- 使用 JQuery AJAX 将值传递给 PHP 不起作用,数组混乱
- 如何在使用 ajax 上传时回显值输入类型文本
- 使用 Ajax 将值传递给 ASP.NET 中的代码
- 使用 JQUERY Ajax 将 JavaScript 值传递给 PHP(值来自 Facebook Javascript
- 无法使用ajax将值传递给Codeigniter控制器
- 当通过AJAX绑定选项时,是否可以将select元素的默认值传递给Knockout
- 在onChange事件上将Form元素值传递给Ajax Post方法
- 在jquerymobile中使用ajax将值传递给codeigniter中的控制器
- 在本例中,我如何将ajax变量的值传递给php脚本