我有一个页面,用户将在其中添加文件夹到他们的帐户。当他们为专辑创建名称时,它会检查该名称的专辑是否已经存在;如果它已经存在,它会告诉他们已经拍摄,但如果没有,则会创建出现在页面上的相册。
我需要的是,只有在成功创建相册时才能重置文本框。目前我有类似的东西:
if(isset($_POST['create_album']))
{
if(isset($_POST['new_album']) && $_POST['new_album'] != "")
{
$new_album_name = $_POST['new_album'];
if(/** Here I check if the $new_album_name exists **/) {
$new_album_name_error = "album exists numbnuts";
}
else
{
/** LOTS OF CODE **/
/** Here I create a new album with the input **/
/** END OF LOTS OF CODE **/
echo "<script>
document.getElementById('new_album').value='';
</script>";
}
}
}
提交按钮的ID为'create_album',文本框的ID为'new_album'。
然而,我似乎无法得到任何工作,它将获得文本框的ID并清除它。其他一切都很完美。
注意:在代码中,我已经取出了文件路径和代码,用于检查相册是否存在以及创建相册,为简单起见而且不需要。
答案 0 :(得分:0)
PHP是1次拍摄。它查询服务器并吐出响应。任何互动都需要一些帮助。我建议使用ajax jquery / javascript。让提交按钮调用一个执行查询的ajax页面,它将返回一个结果。从该结果中,您可以确定文本框的值。
<script>
($'#subAlbum').click (function ()
{
var newAlbum = $('#newAlbum');
var data = "newAlbum="+newAlbum;
$.ajax(
{
type: "POST",
url: "checkAlbum.php",
data: data,
success: function(result)
{
if (result == "true") //error condition
{
$('#newAlbum').val('');
}
else
{
$('#newAlbum').val(newAlbum);
}
}
})
});
</script>
<form id='albumForm' method='POST' action='#'>
<input type='text' name='newAlbum' id='newAlbum' value='<?php echo $albumName;?>'>
<input type='button' id='subAlbum' value='submit'>
on checkAlbum.php运行您的查询并回显“true”或“false”作为回复。
答案 1 :(得分:0)
另一种选择是在没有AJAX的情况下进行。
注意:我假设您正在向同一个PHP文件发出请求。
<?php
$new_album_name_error = "";
$albumName = "";
if(isset($_POST['create_album'])) {
if(isset($_POST['new_album']) && $_POST['new_album'] != "") {
$new_album_name = $_POST['new_album'];
if(/** Here I check if the $new_album_name exists **/) {
$new_album_name_error = "album exists numbnuts";
$albumName = $new_album_name;
}
else {
/** LOTS OF CODE **/
/** Here I create a new album with the input **/
/** END OF LOTS OF CODE **/
}
}
}
?>
<span class="error_code"><?php echo $new_album_name_error; ?></span>
<input type="text" id="new_album"><?php echo $albumName; ?></input>
每当您加载页面时,输入都将为空。
如果出现某些错误,它会在span
中显示错误,并会显示相册名称。
如果一切正常,它会将相册名称显示为空。