slim显示来自其文件的JSON响应,调用文件似乎永远不会得到响应

时间:2015-09-23 21:15:11

标签: php slim

在我的第一个苗条项目上工作,所以我怀疑我有一些简单的东西。

这是在WAMP开发环境中。

我有一个名为getValue.php的文件,它有一个简单的表单,并将值传递给名为index.php的超薄API文件。

index.php端的所有处理工作正常,除了slim似乎只是在http://localhost/project/index.php/value中显示json响应,而不是将其传递回getValue.php。我希望getValue.php能够处理响应显示。

这里是getValue.php

<?php
if (!empty($_POST['uid'])) {
    $json = 'index.php/value?uid=' . $_POST['uid'];
    $arr = file_get_contents($json);
}
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>value</title>
    </head>

    <body>
    <form action="index.php/value" method="post">
        <input type="text" name="uid"/>
        <button type="submit">Submit</button>
    </form>
    <br/>

    <?php
        if(!empty($arr)){
            echo json_decode($arr, true);
        }
    ?>
    </body>
</html>

这里是index.php

<?php

use \Slim\Slim;

$app = new Slim(array(
    'mode' => 'development'
));

$app->post('/value', function () use ($app){
    $uid = $app->request->params('uid');
    $uid = $uid + 1;
    $arr = array("uid" => $uid);

    $response = $app->response();
    $response['Content-Type'] = 'application/json';
    $response->body(json_encode($arr));
});

postman似乎发送,接收并显示响应就好了。

任何想法?

1 个答案:

答案 0 :(得分:1)

正如您想象的那样,它很简单:表单中的操作是错误的。由于您希望getValue.php脚本处理POST,因此您应该将其用作表单操作。这样:

<form action="getValue.php" method="post">

您现在的方式是,将表单直接发布到Slim路由,绕过getValue.php脚本。