包含的PHP代码未在提交时执行

时间:2014-08-12 06:18:41

标签: php angularjs

我包含一个带有角度ui路由的php代码 问题是如果是millitary.php:

`

<div class="jumbotron">
    <div class="page-header">
        <h1>Millitary Loot Table</h1>
    </div>
<?php
$MillitaryLoot = array( 
    'M4A4' => 47,
    'AWP' => 2,
    'Karambit' => 1,
    'Famas' => 50
    );
$newMillitaryLoot  = array();
foreach ($MillitaryLoot as $item=>$value)
{
    $newMillitaryLoot = array_merge($newMillitaryLoot, array_fill(0, $value, $item));
}
$myLoot = $newMillitaryLoot[array_rand($newMillitaryLoot)];
if (isset($_POST['submit']))
{
echo "\n" . "<h2 style='display:inline;'>Item: </h2>" . '<p class="text-center text-danger">' . $myLoot . '</p>' . "</br>";
}
?>
        <form name="Gamble" action="" method="post" target="_self">
            <button name="submit" type="submit" class="btn btn-primary">Gamble</button>
        </form>
        </br>
</div>

`

包含app.js

$stateProvider
        .state('millitary', {
            url: '/millitary',
            templateUrl: 'inc/millitary.php'
        })

包含在index.php中,提交按钮基本上不执行表单上方的代码

所以基本上我希望php代码在index.php中执行以保持ui而不是跳进执行的php文件并丢失index.php链接的样式和导航

编辑:如果我正常运行代码它可以正常运行,但如果它被包含则不会

edit2:如果我添加一个echo“test”,if语句之外的所有内容基本上都能正常工作;它输出,但在if内部不是,所以问题是表单和if语句的连接

亲切的问候,丹尼尔

2 个答案:

答案 0 :(得分:0)

更改

<button name="submit" type="submit" class="btn btn-primary">Gamble</button>

<input name="submit" type="submit" class="btn btn-primary" value="Gamble" />

要提交,您需要一个类型submit input或使用一些客户端脚本作为javascript

答案 1 :(得分:0)

将您的HTML更改为以下内容:

<form id="form" name="Gamble" method="post">
     <button id="form" name="submit" type="submit" class="btn btn-primary">Gamble</button>
</form>

您可以使用带HTML5的按钮提交表单,但必须共享相同的表单ID。另请注意,只有支持HTML5的浏览器才支持,否则他们将无法提交表单。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button

另一种选择是使用......

<input name="submit" type="submit" class="btn btn-primary" value="Gamble">

正如@gbestard建议的那样。