我在 php 脚本中有以下一段代码
foreach( $results as $i => $value ){ ?>
<li><form action="getDetail.php" id="detailForm<?= $i ?>" >
<input name="application" value="myTemplate" type="hidden" />
<input name="user" value=<?= $value->publisherID ?> type="hidden" />
<a href="javascript:document.getElementById('detailForm<?= $i ?>').submit();" >
<div class="row" style="padding-left: 10px;"><?= $value->publisherName ?></div>
</a></form></li>
<?php }
它正在工作,但我想知道如何把它放得更好
删除所有表单 ID并放一些更通用的东西,例如
<a href="javascript:$(this).parents('form').submit();" >
哪个不起作用
也没有:
<a href="javascript:$('#detailForm<?= $i ?>').submit();" >
(给出这个 jquery 错误>未捕获的错误:语法错误,无法识别的表达式:);'))
谢谢
我认为 parents() 函数可能返回一个列表,请尝试这样做:
<a href="javascript://" onclick="$(this).closest("form").submit(); return false">
在每个循环结束时,我会做 $i++ 以便您的 id 是唯一的
如果你想有一个语义正确的网页,你需要在你的输入中有id。
关于重写代码,如果您希望jquery处理您的代码,例如使用json,您可以使用以下代码执行某些操作
$(document).ready(function() {
$('.preloader<?php echo $i; ?>').html('<img src="ajax-loader.gif" />');
$.post('post.php', $("#detailForm<?php echo $i; ?>").serialize(),
function(data){
$('#returnData<?php echo $i; ?>').html(data.returnData);
console.log(data);
},'json');
});
希望它有所帮助,如果我和你一样思考。