以动态id为目标';s在javascript文件中


Targeting dynamic id's within a javascript file

在php文件中,我有带有动态id的标记。

示例:

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

在一个单独的JavaScript文件中,我想使用加载函数并将该div.作为目标

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

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

注意:-我之所以这样设置它,是因为循环了多个ul。我只想让我的ajax文件刷新我所在的特定ul中的li。

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

无法使用我所在的路径找到解决方案,我寻找替代方法。计算出我可以在php文件中点击提交表单按钮添加事件。

我一开始没有使用这个方法的原因是,代码在提交到DB之前就已经运行了,因此相对于提交的新数据来说总是落后。

令我惊讶的是,我只是复制了这行代码就解决了这个问题。

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

老实说,我不能确切地说为什么这是有效的,但尝试这种方法背后的逻辑来自于希望双重加载能收到最新提交的文件。

最简单的答案是将JavaScript代码放入<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>

希望能解决这个问题。