-4

我有一个由 php 生成的表并实现了一个模式以允许用户更改由变量生成的文本$l_id;我有一个显示模态 div 部分的链接类“eloc”。我拦截了表单提交 ID“renameLocation”并处理输入并禁用默认提交操作。我想修改显示用户重命名的新文本。

我有这个通过迭代数组重复的php代码,迭代ID是$l

$id_l="\"location_".$l."\"";
echo "<table class=\"add\" border=\"1px\" width=\"100%\">";
echo "<tr class=\"header\"><td class=\"stretch\"><a class=\"eloc\" rel=\"leanModal\" href=\"#modal_location\"><img src=\"images/edit-icon.png\" alt=\"Location\"></a></td><td id=\"".$id_l."\" class=\"location\" colspan=\"6\">Location: ".$row['location']."</td></tr>";

然后我有一个div:

<div id="modal_location" class="modal_prompt">      
    <div class="modal_prompt-ct">           
        <div class="modal_prompt-header">
            <h2>Rename Location</h2>
            <a class="modal_close" href="#"></a>            
        </div>

        <form id="renameLocation">
            <div class="txt-dpy">
                <span id="mlocation_name"></span>
            </div>
            <div class="txt-fld">
                <label for="">Change to</label> 
                <input id="newLocation" name="" type="text" />
            </div>
            <div class="btn-fld">
                <button type="submit">Save &raquo;</button>
            </div>          
        </form>         
    </div>  
</div>

如何修改生成的 $l_id 的文本?

$("#renameLocation").submit(function(e) 
{
    $("#lean_overlay").fadeOut(200);
    $("#modal_location").css({"display" : "none" })
    // How to modify the text of "$l_id"?
    return false; //do not submit form the normal way        
});

非常感谢。

4

2 回答 2

1

你可以这样试试——

$("#<?php echo $l_id?>").html("Your updated text here");
于 2013-01-06T04:17:34.417 回答
1

问题模棱两可。听起来您要编辑的文本不止一个。

您需要一种方法来告诉 JS 更新哪个位置,因此添加一个全局变量。这不是通常的做法,但应该没问题。

向元素添加数据

$id_l="\"location_".$l."\"";
echo "<table class=\"add\" border=\"1px\" width=\"100%\">";
echo "<tr class=\"header\"><td class=\"stretch\"><a class=\"eloc\" rel=\"leanModal\" href=\"#modal_location\" 
    data-location=\"".$l."\"><img src=\"images/edit-icon.png\" alt=\"Location\"></a></td><td id=\"".$id_l."\" class=\"location\" colspan=\"6\">Location: ".$row['location']."</td></tr>";

将此设置在您的 js 的顶部

var selectedlocation=0;

绑定单击编辑链接以设置选定位置

$('.eloc').on('click', function(){
    selectedlocation=$(this).data('location');
});

在代码中使用 var

$("#renameLocation").submit(function(e) 
{
    var location=$(this).data('location');
    $("#lean_overlay").fadeOut(200);
    $("#modal_location").css({"display" : "none" })
    $('#location_'+selectedlocation).text();
    e.preventDefault(); //return false; //do not submit form the normal way        
});

这是另一种方式

忘记全局变量。

添加隐藏的表单域

<form id="renameLocation">
    <input type="hidden" name="location" value="" id="renameLocation_location"/>

把价值放进去

$('.eloc').on('click', function(){
    $('#renameLocation_location').val($(this).data('location'));
});

并使用它。

$('#location_'+ $('#renameLocation_location').val() ).text();

您提供它的方式,模式完全独立于您需要在某处设置以实现您想要的东西的链接。

于 2013-01-06T04:28:32.707 回答