我在php中传递变量有点复杂的问题。
我已经在html <ul>
标签中列出并嵌套了项目,并且我有按钮的每个项目附近应该编辑目录或文件的名称(<ul>
列表是从服务器中的现有目录树视图生成的)。
我设法制作一个弹出窗体让用户输入新名称,并且我有旧名称的路径。
列出index.html中的部分(生成):
<ul>
<li>
<p>folder</p>
<div class="edit-button">
<a href="index.php?path=!working part with getting path!></a>
</div>
<ul>
<li>
... and here subfolders etc
</li>
</ul>
</li>
</ul>
index.html中popup表单部分:
<div id="popupEdit" class="popupEdit">
<?php $path = $_GET['path']; ?>
<div class="popupEdit-content">
<form action="rename.php" method="post">
<input type="text" name="path" value="<?php echo $path; ?>" >
<input type="text" name="new-name" placeholder="nowa nazwa">
<input type="submit" value="Submit" class="popupEdit-submit">
</form>
</div>
</div>
名称为path
的第一个输入将被隐藏以通过文件的路径。
rename.php
可以正常使用静态新名称,因此它只是将new-name
传递到该文件中。
所以这里有两个主要问题:
a
标签)所以我的弹出窗口不会持续很长时间,因为在默认情况下(刷新后)弹出窗口有display: none
path
属性进入input
但是当网站的网址已经填满了?path=...
部分时,它会很好并且会弹出半秒(在重新加载之前)我能够看到名称为path
的输入正确地填充了路径。 我认为可以使用ajax请求,但我不知道如何使这成为可能。
我只想编辑当前节点名称,也许有更简单的方法来执行此操作?
答案 0 :(得分:1)
我认为最好的选择是使用jQuery。这是一个工作示例,动态设置表单的路径
$('.toggler').click(function(){
var path = $(this).attr('path');
$('#popupEdit').css('display','block');
$('.pathinput').val(path);
$('.path').text(path);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="toggler" path="example text">Click Me</button>
<button class="toggler" path="example text 2">Click Me 2</button>
<button class="toggler" path="example text 3">Click Me 2</button>
<div id="popupEdit" class="popupEdit" style="display: none">
<p class="path"></p>
<div class="popupEdit-content">
<form action="rename.php" method="post">
<input type="text" name="path" class="pathinput" value="PATHHERE" >
<input type="text" name="new-name" placeholder="nowa nazwa">
<input type="submit" value="Submit" class="popupEdit-submit">
</form>
</div>
</div>