使用newbified Ajax填充html表单

时间:2011-11-23 01:46:38

标签: php mysql html ajax

我的问题是:我有一个存储在数据库中的分类列表,我希望在下拉列表中输出。当要显示子类别时,层次结构就会出现,这取决于父ID(等于列出的前七个主要类别)。我的想法相对简单:当用户点击动态分配的主要类别列表时,他们点击选项标签。对于每个选项标记,在value属性中列出了一个id(即父元素),以及一个发送到Javascript函数的参数,然后使用AJAX通过PHP获取数据并将其发送到我的'javascript。 php'文件。然后该文件执行魔术,并填充子类别列表,该列表取决于所选的主要类别。我相信我有这个想法,只是因为某些原因,我正在不正确地实施解决方案。

这是我到目前为止所拥有的:

来自javascript.php的

<script type="text/javascript" src=<?=JPATH_BASE.DS.'includes'.DS.'jquery.js';?>>
var ajax = {

    ajax.sendAjaxData = function(method, url, dataTitle, ajaxData) {  
        $.ajax({
          type: 'post',  
                url: "C:/wamp/www/patention/components/com_adsmanagar/views/edit/tmpl/javascript.php",  
                data: {
             'data' : ajaxData 
            },  
                success: function(result){  
            // we have the response  
            alert("Your request was successful." + result);  
                },  
                error: function(e){  
            alert('Error: ' + e);  
                }  
        });  
    }

    ajax.printSubCategoriesOnClick = function(parent) {

        alert("hello world!");

        ajax.sendAjaxData('post', 'javascript.php', 'data' parent);

        <?php
            $categories = $this->formData->getCategories($_POST['data']);
        ?>

        ajax.printSubCategories(<?=$categories;?>);

    }

    ajax.printSubCategories = function(categories) {

        var select = document.getElementById("subcategories");

        for (var i = 0; i < categories.length; i++) {

            var opt = document.createElement("option");

            opt.text = categories['name'];
            opt.value = categories['id'];
        }    

    } 
}




</script>

用于填充表单数据的函数

function populateCategories($parent, FormData $formData) {
    $categories = $formData->getCategories($parent);
    echo "<pre>";
    print_r($categories);
    echo "</pre>";
    foreach($categories as $section => $row){
        ?>
        <option value=<?=$row['id'];?> onclick="ajax.printSubCategoriesOnClick(<?=$row['id']?>)">
            <? echo $row['name']; ?>
        </option>
        <?php       
    }

}

问题是,当我尝试在$ _POST变量上执行print_r时,什么都没有显示出来。我还收到一个“未定义的索引”错误(指的是我为数据类型设置的密钥)。我想由于某种原因,数据被发送到我的form.php文件,或者我的default.php文件,它通过函数包含form.php和javascript.php文件。

这里有什么具体的东西吗?不幸的是,只是查找基本的AJAX语法(通过jQuery)并没有帮助。

0 个答案:

没有答案