除非按下按钮,否则禁用按钮

时间:2014-09-12 08:25:46

标签: javascript php button

我想禁用某些按钮,直到按下按钮。

第一个按钮(button1)生成一个文件。其余的按钮与该文件有关(查看,下载等)

我尝试禁用按钮,直到按下第一个按钮,但是当我使用发布请求时,当我按下button1并重置所有内容时页面会刷新。

我正在考虑对文件进行grep-ing并将其分配给PHP中的变量,然后根据该文件是否存在来禁用/启用按钮,但我不确定该怎么做PHP / JS交叉。任何指导都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您应该使用异步页面加载。只需将一个请求字符串发送到服务器,它就会回复你的答案。而无需重新加载页面。

 var jstring = JSON.stringify(request); //wrap up your specification in an JSON  
$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "http://" + window.location.hostname +  "/request",
            data: jstring,
            success: function(response) {
                //... enable buttons
            },
            error: function(response) {
               //... file could not be loaded 
            }
        });

在PHP中

if ($_GET["type"] === 'request') {
    $jsonraw = $decode ? utf8_encode(file_get_contents("php://input")) : file_get_contents("php://input");
        $jsonstring = json_encode($jsonraw, true);
        $array = json_decode($jsonraw, true);
//... do something with $array
}

答案 1 :(得分:0)

您需要的是AJAX。

点击第一个按钮,进行AJAX调用,检查上述文件的php文件。如果找到文件,则将PHP设置为返回true,否则设置为false。

最后,在ajax的回调中,如果返回的代码成功,则javascript会发生变化。

我不会为你编写代码,但我会给你一个链接。应该绰绰有余。

http://api.jquery.com/jquery.ajax/

请注意,您需要jQuery来执行该示例。

答案 2 :(得分:0)

您也可以在没有ajax的情况下执行此操作。您也可以使用会话执行此操作。

将其保存在会话中,在保存任何会话之前,在创建文件后禁用按钮视图,下载等,然后保存会话,这将确定已禁用的属性。

粗略示例:

session_start();

if(isset($_POST['create_file'])) {
    $_SESSION['file_exists'] = true;
    // generate file blah blah
    echo 'File created: stackoverflow.jpg <br/>';
}

// now you decide when to destroy the session for this
// unset($_SESSION['file_exists']);


?>
<form method="POST">
    <input type="submit" name="create_file" value="Create File" /><br/><hr/>

    <input type="submit" name="view_file" value="View File" <?php echo !isset($_SESSION['file_exists']) ? 'disabled' : ''; ?> /><br/>
    <input type="submit" name="download_file" value="Download File" <?php echo !isset($_SESSION['file_exists']) ? 'disabled' : ''; ?>  /><br/>
</form>