选择新值时重新加载页面

时间:2014-11-28 14:01:02

标签: javascript php jquery zend-framework

我处理一个脚本,我应该获取我的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

1 个答案:

答案 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选择。