Javascript 显示json文件和值结果的按钮
我需要帮助来显示json文件值的总和,如下所示: 我用php编写了以下代码: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
(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>