从HTML文本输入字段存储PHP变量
为了这张桌子,我已经把头撞在桌子上有一段时间了,我的大脑因为读了太多的东西,什么也没做而变得一团糟 基本上,我需要从html输入字段获取输入,将其分配给php变量,然后将该变量附加到url的末尾。到目前为止我一点运气都没有从HTML文本输入字段存储PHP变量,php,html,twitter-bootstrap,variables,input,Php,Html,Twitter Bootstrap,Variables,Input,为了这张桌子,我已经把头撞在桌子上有一段时间了,我的大脑因为读了太多的东西,什么也没做而变得一团糟 基本上,我需要从html输入字段获取输入,将其分配给php变量,然后将该变量附加到url的末尾。到目前为止我一点运气都没有 <!DOCTYPE html> <html> <head> <title>MyPage</title> <meta name="viewport" content="width=device
<!DOCTYPE html>
<html>
<head>
<title>MyPage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/black-tie/jquery-ui.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="//oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<!-- Sorry this is so ugly, I was trying to get it done fast, I can make another pass and smack it with a pretty stick later -->
<body>
<div class="jumbotron">
<div class="container">
<h1>My Super Page</h1>
<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<p class="lead">Please Enter Some Text: </p>
<input type="text" name="input">
<input type="submit" data-toggle="modal" data-target="#myModal">
</form>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Results</h4>
</div>
<div class="modal-body">
Your Input Parsed:
<?php
$myInput = $_POST["input"];
echo $myInput;
$service_url = 'http://www.myapiservice/index.php/api/lookup?key=notreal&number='. $myInput;
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
$info = curl_getinfo($curl);
curl_close($curl);
die('error occured during curl exec. Additional info: ' . var_export($info));
}
curl_close($curl);
echo $name;
$decoded = json_decode($curl_response, true);
if (isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
die('error occured: ' . $decoded->response->errormessage);
}
$myVar = $decoded["Response"]["dataset"];
if($myVar){
echo $myVar;
}
else {
echo 'Discarded Data';
}
?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div>
</div>
</body>
</html>
我的网页
我的超级页面
接近
您正在使用modalbox进行输入type=submit
。因此,在单击“提交”后不会发送您的数据
我使用javascript修改了提交按钮,并在提交按钮时打开模式框。
这是您的代码:
<!DOCTYPE html>
<html>
<head>
<title>MyPage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/black-tie/jquery-ui.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<script src="http://jquery-jsonp.googlecode.com/files/jquery.jsonp-1.0.4.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="//oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<!-- Sorry this is so ugly, I was trying to get it done fast, I can make another pass and smack it with a pretty stick later -->
<body>
<div class="jumbotron">
<div class="container">
<h1>My Super Page</h1>
<form method="get" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<p class="lead">Please Enter Some Text: </p>
<input type="text" name="input">
<input type="submit">
</form>
<?php if(isset($_REQUEST['input'])){?>
<script>
$(function() {
$( "#myModal" ).modal('show');
});
</script>
<?php }?>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Results</h4>
</div>
<div class="modal-body">
Your Input Parsed:
<?php
$myInput = $_REQUEST['input'];
echo $myInput;
$service_url = 'http://www.myapiservice/index.php/api/lookup?key=notreal&number='. $myInput;
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
$info = curl_getinfo($curl);
curl_close($curl);
die('error occured during curl exec. Additional info: ' . var_export($info));
}
curl_close($curl);
echo $name;
$decoded = json_decode($curl_response, true);
if (isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
die('error occured: ' . $decoded->response->errormessage);
}
$myVar = $decoded["Response"]["dataset"];
if($myVar){
echo $myVar;
}
else {
echo 'Discarded Data';
}
?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div>
</div>
</body>
</html>
我的网页
我的超级页面
那么提交表单后会发生什么呢?您希望在哪一行添加变量。另外,请只发布相关代码,因为在这么大的代码中很难找出您的问题;这就是我真正需要的。其余的代码完全按照预期工作,我只需要能够将文本附加到API url的末尾。PHP是一种服务器端语言。这意味着,与您可能期望的不同,内容只评估一次,然后发送到您的浏览器。一旦信息被发送到您的浏览器(即,一旦您看到它),PHP就会忘记它,仅此而已。你试过提交你的表格吗?。直到您的代码再次被评估(这次是用户输入),您才可能看到结果。据我所知,使用POST的原因是它允许在页面加载后进行更新(在从文本字段读取输入的情况下)。到目前为止,我已经提交了近100次,并进行了各种调整,但没有成功地将其正确更新。我真的试图避免在这里问这个问题,但在8个小时的阅读和尝试代码片段后,我感到沮丧,没有突破。Gowri我希望我能投票给你100次,谢谢你解决这个问题!事实上,我本想编辑这一行六次,但一直在用其他解决方案来绕圈子!