我处理一个脚本,我应该获取我的gmail地址的文件夹 我在zend_framework上工作 我进入了:
<?php
$mail = new Zend_Mail_Storage_Imap($setting);
$folders = new RecursiveIteratorIterator($mail->getFolders(), RecursiveIteratorIterator::SELF_FIRST);
echo '<select id="dir" class="form-control" name="folder">';
foreach ($folders as $localName => $folder) {
$localName = str_pad('', $folders->getDepth(), '-', STR_PAD_LEFT) .
$localName;
echo '<option';
if (!$folder->isSelectable()) {
echo ' disabled="disabled"';
}
echo ' value="' . htmlspecialchars($folder) . '" >'
. htmlspecialchars($localName) . '</option>';
}
echo '</select>';
//$mail->selectFolder("Inbox");
?>
我确实尝试重新加载页面,当我更改邮件文件夹,例如从收件箱到垃圾邮件或草稿,我确实尝试使用小的javascript函数重新加载页面但仍然在刷新收件箱页面后,怎么能我解决了这个问题
THX
答案 0 :(得分:0)
您可以将选择框的值发布到页面,然后将该数据提取到您的php中。
所以,javascript就是这样的(这应该放在文档就绪语句中):
jQuery('#dir').change(function(){
var dirVal = jQuery(this).val();
$.post(window.location, {dir: 'dirVal'});
});
然后将PHP更改为类似的内容(注意if语句根据我们JS中发布的&#39; dir&#39;值检查值):
$mail = new Zend_Mail_Storage_Imap($setting);
$folders = new RecursiveIteratorIterator($mail->getFolders(), RecursiveIteratorIterator::SELF_FIRST);
echo '<select id="dir" class="form-control" name="folder">';
foreach ($folders as $localName => $folder) {
$localName = str_pad('', $folders->getDepth(), '-', STR_PAD_LEFT) . $localName;
echo '<option';
if (!$folder->isSelectable()) {
echo ' disabled="disabled"';
}
if($_POST['dir'] == htmlspecialchars($folder)){
echo ' selected="selected"';
}
echo ' value="' . htmlspecialchars($folder) . '" >' . htmlspecialchars($localName) . '</option>';
}
echo '</select>';
这是未经测试的,可能需要进行一些修改,但这是基本概念。发布val,然后根据该post val选择。