在javascript文件中定位动态ID

时间:2015-12-06 10:49:10

标签: javascript php jquery ajax

在php文件中,我有带动态ID的标签。

示例:

<ul id="<?php echo 'ul_'.$xx; ?>">
 <li id="test_li">...</li>
</ul>

在一个单独的JavaScript文件中,我想使用load函数并定位div。

$('<?php echo 'ul_'.$xx; ?>').load('../includes/myphpfile.inc.php #test_li');

我的问题是,如何在JavaScript文件中加载php?

注意: - 我这样设置的原因是由于循环多个ul。我只是想让我的ajax文件刷新我所在的特定ul内的li。

编辑:如果我使用类而不是Id,它会将我新插入的行添加到具有相同类的所有ul中。如果我使用普通Id,它只适用于第一个ul。进一步解释为什么我需要以我的方式为目标。

2 个答案:

答案 0 :(得分:0)

最简单的答案是将您的JavaScript代码放入PHP文件中 <script></script>标记,即在关闭<body>标记之前,执行此操作:

<script type="text/javascript">
    $('<?php echo 'ul_'.$xx; ?>').load('../includes/myphpfile.inc.php #test_li');
</script>

但是如果必须使用外部js文件,那么你可以这样做:

创建一个(.php)文件并写:

<?php
header("Content-type: application/javascript");
?>
// your js code with php inside (as you would do in HTML)
var othervar='<?php echo $phpVar; ?>';
//<?php //some php ;?>

然后,在你的主(html / php)文件中输入:

<script src='myjs.php' type='application/javascript'></script>

希望能解决它。

答案 1 :(得分:0)

无法使用我所使用的路径找到解决方案,我寻找其他方法。工作了我可以在提交表单按钮上的php文件中添加事件。

我最初没有使用此方法的原因是因为代码在提交给数据库之前运行,因此总是落后于提交的新数据。

令我惊讶的是,我通过复制代码行来解决这个问题。

  <script>
  $("<?php echo '#enter_submit_button'.$linkid ?>").click(function(){
    /*1*/
    $('#<?php echo 'ul__'.$linkid; ?>').load('../includes/pursuit.inc.php <?php echo '#li__'.$linkid; ?>');
    $("<?php echo '#insert_new'.$linkid; ?>").fadeOut();
    /*2 with delay*/
    $('#<?php echo 'ul__'.$linkid; ?>').delay( 800 ).load('../includes/pursuit.inc.php <?php echo '#li__'.$linkid; ?>');
  });
 </script>

老实说,我无法确切地说出为什么会这样,但尝试这种方法背后的逻辑来自于希望双重负载能够获得最新的提交。