使用jqueryload方法将ajax响应数据作为内部html加载到页面元素中

load ajax response data to a page element as inner-html with j query load method

本文关键字:加载 html 元素 内部 方法 jqueryload ajax 响应 数据 使用      更新时间:2023-09-26

我有一个类似的表单

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript"  language="javascript">
function get_sub1(value)
{
        $(document).ready(
    function()
    {
    $.post("autofunction.php?action=getsub1" ,
    { navmenu_id : value },
    function(data)
    {   alert(data);
     $('#sub1_menu_td').html(data);
    }); 
    });
}
</script>
</head>
<body>
<form action=""  name="mainform" method="post">
<table align="center" cellpadding="0" cellspacing="0" border="1">
<tr> 
<th>Select NavMenu </th>
<td> 
<select id="parent_menu" name="parent_menu"  onchange="get_sub1(this.value)">
<option value="0">Select</option>
<?php 
$nevmenu_result = $db->query ("select * from tblnavmenu");
while ($nevmenu_info = mysql_fetch_array($nevmenu_result))
{
?>

<option value="<?=$nevmenu_info['nevmenu_id']?>" >   <?=$nevmenu_info['nevmenu_name']?> </option>

<?php
}
?>
</select>
</td>
<tr > 
<th>Select Sub1 </th>
<td id="sub1_menu_td"> 
<select id="sub1_menu" name="sub1_menu" >
<option value="0">Select</option>
</select>
</td>
</tr>
<tr> 
<th>Sub2 Code:</th>
<td><input type="text" name="sub2_id" id="sub2_id"  /></td>
</tr>
<tr> 
<th>Sub2 Name:</th>
<td><input type="text" name="sub2_name" id="sub2_name"  /></td>
</tr>

<tr> 
<th>Sub2 Link:</th>
<td><input type="text" name="sub2_link" id="sub2_link"  /></td>
</tr>
</table>

  <table class="button"  align="center">
                   <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> <td> <img src="../images/save.png" height="50" width="50" style="cursor:pointer;" alt="Save" onClick="document.mainform.submit();"> </td>
                      </table>  
</form>

</body>
</html>

如本表格所示,选择导航菜单的基础上,Select Sub1选项加载来自更改Select NavMenu时调用的事件。定义了事件,在该事件中,我们发送navmenu的值并发布到autofunction.php
自动功能代码是

if($_REQUEST['action'] == "getsub1")
{
$navmenu_id = $_REQUEST['navmenu_id'];
$data = '<select id="sub1_menu" name"sub1_menu"> ';
$navmenu_result = $db->query("select * from sub1 where sub1_nevmenu_id = '".$navmenu_id."' ");
while($navmenu_info = mysql_fetch_array($navmenu_result))
{
$data .= '<option value="' . $navmenu_info['sub1_id'].  '"   > '.$navmenu_info['sub1_name']  . '   </option>      ';
}
$data .= '</select>';
echo $data;
} 

作为此响应的一个选择,我们将其更改为以前的。当我试图获得Sub1的值时,选择插入数据库。没有所需的值,因为

innerHTML的内容只是在浏览器中显示,而不是在页面源中,所以我也搜索以更改页面源中的内容。我发现j查询加载函数。看到了很多例子,但没有像那样做

$('#sub1_menu_td').load(data); ???????????

我需要将数据加载到#sub1_menu_td中。

如何做到这一点。尝试很多类似的东西

$('#sub1_menu_td').load("autofunction.php #sub1_menu_td");

但失败

我的目标是在pagesource中加载相同的内容,这样我就可以获取值

当您使用jquery并更改DOM(文档对象模式)的html时

然后在视图源中,这些来自(ajax、load和jquery或javascript中的任何方法)的html在视图源中都看不到

在视图源中,我们只看到页面加载上有哪些html

通过php、、net、java等服务器端语言

而不是像javascript 这样的客户端语言

请参阅GOOGLE PLAY,所有ajax提供的html请参阅控制台中的最佳结果请参阅firebug 的firefox

很抱歉,我无法阅读所有代码,但我看到您的autofunction.php需要一个后变量才能工作,所以在load()方法中,我们添加了一个变量action=getsub1来验证条件if($_REQUEST['action']=="getsub1"):

   $('#sub1_menu_td').load("autofunction.php",{action: 'getsub1'});