0

我在 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 错误-> 未捕获的错误:语法错误,无法识别的表达式:);'))

谢谢

4

2 回答 2

2

我想也许 parents() 函数会返回一个列表,请尝试这样做:

<a href="javascript://" onclick="$(this).closest("form").submit(); return false">
于 2012-05-02T17:35:51.270 回答
0

在 for each 循环结束时,我会执行 $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');


});

希望它有所帮助,如果我的想法和你一样。

于 2012-05-02T17:42:13.577 回答