【发布时间】:2015-04-07 03:32:00
【问题描述】:
我想更新一个表单,更确切地说,我希望显示一个额外的滚动菜单,这取决于用户在第一个滚动菜单中的选择。
我有一个页面,mypage.php 页面,上面有一个表单。这里是:
<form method="post" action="wedontcare.php" enctype="multipart/form-data">
<label for="base">3 - Select a DB </label><br />
<?php
include 'functions.php';
offers_choice_DB();
if (isset($_POST['base_name_choice'])){
offers_choice_table($_POST['base_name_choice']);
}
我有一个单独的文件“functions.php”,其中声明了我在这里使用的所有函数。 offer_choice_DB() 显示一个滚动菜单,我可以在其中选择一个数据库(实际上,此函数执行 MySQL 查询并在滚动菜单中回显结果)。如果用户选择一个数据库,则 $_POST['base_name_choice'] 存在。确实如此,因为当我只使用 PHP/HTML 时,一切都很好。
我的目的是让用户选择一个数据库,然后对于这个数据库,我想显示第二个滚动菜单,显示这个数据库中的一些表。仅当设置了 POST 值时才会显示此滚动菜单。 offer_choice_table($_POST['base_name_choice']) 函数将此值作为参数,然后回显包含表格的滚动菜单的 HTML。我们到了 !
哦,提交按钮在这里并不重要,因为我希望在用户点击提交按钮之前显示我的第二个滚动菜单,所以我们忽略目标页面,好吗?
之前,一切正常:我使用了测试、条件(isset...),但它不是动态的,我不得不调用其他页面,...等等。现在,正如您猜到的那样,我想在用户选择数据库后立即使用 jQuery 刷新 mypage.php,以便出现一个额外的菜单。
我开始听到滚动菜单的变化,但后来我不知道如何使用包含所选数据库的 POST 参数刷新我的页面。无论如何,这是我的代码:
<script type="text/javascript">
$( '#base_name_choice' ).change(function() {
var val = $(this).val(); //here I retrieve the DB name
alert( val ); //I notify myself to check the value : it works
$.ajax({
type: 'POST', //I could have chosen $.post...
data: 'base_name_choice='+val, //I try to set the value properly
datatype: 'html', //we handle HTML, isn't it ?
success: function(){
alert( "call ok" ); //displays if the call is made
//and here...???? I don't know whatto do
}
})
});
</script>
在这里...任何帮助将不胜感激!谢谢:)
问候
【问题讨论】:
-
如果您只是获取数据,您应该使用
GET而不是POST:stackoverflow.com/questions/1872965/get-vs-post-in-ajax -
您可以像
$('element').append('what do you want to append');这样附加数据,例如:$('form').append(data);
标签: php jquery html forms page-refresh