使用j查询加载方法将ajax响应数据作为inner-html加载到页面元素

时间:2013-08-21 05:38:24

标签: php javascript ajax jquery

我有一个这样的表格

 "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>

此表单显示在选择NavMenu 的基础上选择Sub1 选项加载来自更改选择NavMenu时调用的事件。并定义了事件,我们发送navmenu的值并发布到 autofunction.php
autofunction 代码

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中加载相同的内容,以便我可以获取值

2 个答案:

答案 0 :(得分:0)

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

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

在视图源中我们只看到哪个html来自页面加载

服务器端语言,如php ,, net,java

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

在此版本中查看GOOGLE PLAY所有html来自ajax,请在控制台中查看最佳结果,请参阅firefox firebug

答案 1 :(得分:0)

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

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