为了序言,让我说我对jQuery来说是'新的'。我有概念和大部分用法downpat,但我还不完善所有这些括号和函数。
因此,我可能在这里犯了一个业余错误。我使用以下代码提交一些数据,转到页面的下一部分,然后尝试将新内容加载到下一部分的下拉菜单中:
$('#submit').click(function() {
var nam = $('#name').val();
var par = $("#parentCategory").val();
var dat = $("#catDate").val();
$.post("<?php echo site_url('admin/add_gallery'); ?>", {name: nam, parent: par, cat_date: dat}, function() {
if (par != 'undefined')
{
$('#next_tab').click()
}
else
{
$("#gallery").click(),
$("#name").val('')
}
});
$.get("http://www.example.com/admin/get_galleries", function(gals)
{ // Get the Contents of Drop Down Gallery Select
$("#galleryChoose").html(gals);
});
alert('yop');
});
不幸的是它没有用。 POST效果很好,但#galleryChoose(这是一个
标签)永远不会被新内容填充。
我使用GET调用的URL(通常是我的测试站点的URL,我为了示例目的更改了它)会生成一个包含所有最新元素的下拉列表,但是使用GET引用它似乎不起作用。我是否必须以某种特定方式返回GET?我现在只使用return $variable
,其中$变量包含所有HTML。
非常感谢任何帮助。这是一个漫长的夜晚与这个挣扎。
更新:这是我用URL引用的代码(它的CodeIgniter,所以这是在我的控制器中):
function get_galleries()
{
$galleries = $this->find->all_items('galleries');
$return = '<label>Choose the Gallery:</label> <br />';
$return .= '<select id="galleryParent" name="galleryParent">';
foreach ($galleries as $gals)
{
$return .= '<option id="'.$gals->gal_name.'" value="'.$gals->gal_id.'">'.$gals->gal_name.'</option>';
}
$return .= '</select>';
echo $return;
}
答案 0 :(得分:2)
我猜你想要做的是通过$.post
更新一些数据,然后使用get获取更新的数据?在这种情况下,您遇到问题,因为$.post
和$.get
是异步的,这意味着浏览器在继续执行脚本之前不会等待它完成。
这意味着您的脚本几乎会同时调用$.post
和$.get
,而是尝试将您的get置于$.post
的回调中,如下所示:
$('#submit').click(function() {
var nam = $('#name').val();
var par = $("#parentCategory").val();
var dat = $("#catDate").val();
$.post("<?php echo site_url('admin/add_gallery'); ?>", {name: nam, parent: par, cat_date: dat}, function() {
if (par != 'undefined')
{
$('#next_tab').click()
}
else
{
$("#gallery").click(),
$("#name").val('')
}
$.get("http://www.example.com/admin/get_galleries", function(gals)
{ // Get the Contents of Drop Down Gallery Select
$("#galleryChoose").html(gals);
});
});
alert('yop');
});
答案 1 :(得分:0)
我不是PHP人员,但是删除目录字符串中的前导/
(/admin/get_galleries
)修复它吗?您会添加admin/get_galleries
,因为您的链接变量已经有/
。
答案 2 :(得分:0)
CodeIgniter默认禁用$ _GET。您必须启用它才能使用它。看看这里:CodeIgniter User Guide, Security