Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示json文件和值结果的按钮_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 显示json文件和值结果的按钮

Javascript 显示json文件和值结果的按钮,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我需要帮助来显示json文件值的总和,如下所示: 我用php编写了以下代码: (name of this file: estat.php) <?php //include "sum.php"; $x="active"; $y=''; if(isset($_GET['tabsoft'])){ $y="active"; $x=""; } ?> <html

我需要帮助来显示json文件值的总和,如下所示:

我用php编写了以下代码:

                         (name of this file: estat.php)

<?php
    //include "sum.php";
    $x="active";
    $y='';

    if(isset($_GET['tabsoft'])){
        $y="active";
        $x="";
    }

?>
<html>
    <?php include 'cab.php'; ?>
    <body>
        <?php include 'menu.php'; ?>
        <div class="container">
            <div calss="row">
                <ul id="tabs" class="nav nav-tabs" data-tabs="tabs">
                    <li class="<?php echo $x ?>"><a href="#val" data-toggle="tab">Valor Total Gasto</a></li>
                    <li class="<?php echo $y ?>"><a href="#emp" data-toggle="tab">Número de Empresas Envolvidas</a></li>
                </ul>
                <div id="my-tab-content" class="tab-content">
                    <div class="tab-pane <?php echo $x ?>  " id="val">
                        <p>
                            <form>
                                <h2>Dinheiro gasto nos contratos</h2>
                                <input type="submit" name="soma" value="Somar Valores" class="btn btn-primary" formaction="action_sum.php"/>
                                <!-- <p><?php echo $total; ?></p> -->
                            </form>
                        </p>
                    </div>
                    <div class="tab-pane <?php echo $y ?>  " id="emp">

                    </div>
                </div>
            </div>
        </div>
        <?php include 'rodape.php';?>
    </body>
</html>
(此文件的名称:estat.php)
我需要显示json文件中'initialContractualPrice'的总和值,为此,我在另一个名为sum.php的文件中编写代码:

<?php

// Get json from url
$json = file_get_contents("file.json");
// Decode json into an array
//$json = json_decode($content, true);
$data =  json_decode($json, TRUE);

// Set default
global $total;

// Loop through the array created when decoding json
foreach ($data as $key) 
{
    // remove symbol from the end leaving only digits
    $value = substr(utf8_decode($key['initialContractualPrice']), 0, -1);
    // remove the decimal point
    $value = str_replace('.', '', $value);
    // replace the comma with a decimal point
    $value = str_replace(',', '.', $value);
    // add this number to the total value
    $total += $value;
}

//echo $total;

?>

我的问题是,如何在不重定向到sum.php的情况下为页面执行sum,但执行并在estat.php中打印结果

如果更容易的话,我可以将sum.php的类型改为js或jquery


非常感谢。

正如您所做的那样,将sum.php包含在文件estat.php中。使用css隐藏总和值

<input id="sum-btn" type="submit" name="soma" value="Somar Valores" class="btn btn-primary" formaction="action_sum.php"/>
<p id="sum"><?php echo $total; ?></p>
使用jQuery(标记时)在按钮上放置一个单击处理程序:

<script>
$(document).ready(function() {
    $('#sum-btn').click(function() {
       $('#sum').show(); 
    });
});
</script>

在sum.php中,
echo$total结尾。

您可以将您的页面包含在“estat.php”页面中,或者通过ajax调用来实现;但是,如果我使用include estat.php在打开页面时显示值,并且只需要单击按钮,否则我会使用错误的方法吗@MamaWalter如果您的json文件永远不会更改,那么您可以在加载页面时计算总和并隐藏该值。使用
javascript
只需在单击按钮时显示值。是的,我可以在代码中这样做吗@妈妈,你试过什么?你有错误吗?在控制台中?uncaughtreferenceerror:$未定义您使用Jquery标记您的帖子,因此我假设您使用它。在我的示例中,您必须导入.并在控制台事件中显示此错误。returnValue已弃用。请改用标准的event.preventDefault()。您最后的评论不是错误,而是对chrome的警告。我认为,有关更多详细信息,请参阅本文:
<script>
$(document).ready(function() {
    $('#sum-btn').click(function() {
       $('#sum').show(); 
    });
});
</script>
<script>
$(document).ready(function() {

    $('#sum-btn').click(function() {

        var request = $.ajax({
            url: "sum.php",
            type: "GET"
        });
        request.done(function( value ) {
            $('#sum').text( value );
            $('#sum').show(); 
        });
        request.fail(function( jqXHR, textStatus ) {
            alert( "Request failed: " + textStatus );
        });

    });
});
</script>