在我的第一个苗条项目上工作,所以我怀疑我有一些简单的东西。
这是在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似乎发送,接收并显示响应就好了。
任何想法?
答案 0 :(得分:1)
正如您想象的那样,它很简单:表单中的操作是错误的。由于您希望getValue.php
脚本处理POST,因此您应该将其用作表单操作。这样:
<form action="getValue.php" method="post">
您现在的方式是,将表单直接发布到Slim路由,绕过getValue.php
脚本。