页面 dslogin.php 从侧面板加载到
<div id="workarea"> </div>
加载页面的链接非常简单:
<a id=\"ds_action\" href=\"javascript:outputResults('dslogin.php','workarea','db=$k');\"> Connect to $k</a>
但是当 dslogin 获取 $_GET["db"] 时,它会生成一个显示在工作区 div 中的表单。现在表格也很简单:
function getCredentials($db,&$u,&$p)
{
echo "Connecting to Database $db: <br/>\n";
echo "<form id=\"dblogin\" action=\"dsconnect.php\" method='post'> \n" ;
echo" Please enter your username and password if you wish. <br/> \n" ;
echo "Username: <input type='text' name='username' > \n " ;
echo "Password: <input type='password' name='password' > \n" ;
echo "<input type='submit' value='Login' name='Login'> <br/> \n" ;
echo "<input type='hidden' value=$db name='database'> <br/> \n" ;
echo "</form>" ;
echo "<div id=\"local\"> </div>";
}
用户提交表单后,应该在以下代码中拦截它的 ajax 代码
<script>
$(document).ready(function()
{
$('#dblogin').submit(function()
{ // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // the file to call
success: function(response) { // on success..
$('#local').append(response); // update the DIV
}
});
return false; // cancel original event to prevent form submitting
});
});
</script>
这是行不通的。我的想法是,当页面第一次加载 ajax 脚本时:
$(document).ready(function()
{
$('#dblogin').submit(function() ...
没有指向 dblogin 表单的链接,因为它尚未加载。
当您单击提交时,您将获得操作页面 dsconnect.php,而不是按预期将其输出附加到表单页面。
有没有办法使这项工作?