【问题标题】:Storing PHP Variable from HTML Text Input Field从 HTML 文本输入字段存储 PHP 变量
【发布时间】:2014-01-30 10:34:20
【问题描述】:

为了这个问题,我已经把头撞在桌子上一段时间了,我的大脑因为阅读大量的东西而没有任何工作而变得糊状。

基本上,我需要从 html 输入字段中获取输入,将其分配给 php 变量,然后将该变量附加到 url 的末尾。到目前为止,我一点运气都没有!

<!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">&times;</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>

【问题讨论】:

  • 提交表单后会发生什么?
  • 你想在哪一行添加变量。另外请仅发布相关代码,因为在如此大的代码中很难找出您的问题。
  • 我需要将 添加到末尾: $service_url = 'myapiservice/index.php/api/lookup?key=notreal&number=';这就是我真正需要的。其余代码按预期完美运行,我只需要能够将文本附加到 API url 的末尾。
  • PHP 是一种服务器端语言。这意味着,与您可能期望的不同,事物只评估一次,然后发送到您的浏览器。一旦信息被发送到您的浏览器(即,一旦您看到它),PHP 就会忘记它,仅此而已。您是否尝试过提交表单?直到再次评估您的代码(这次是用户输入),您才能看到结果。
  • 据我了解,使用 POST 背后的原因是它允许在页面加载后更新(在从文本字段读取输入的情况下)。到目前为止,我已经提交了将近 100 次,并进行了各种调整,但没有运气让它正确更新。我真的很想避免在这里问这个问题,但是在阅读和尝试代码 sn-ps 8 小时后没有突破,我感到很沮丧。

标签: php html twitter-bootstrap variables input


【解决方案1】:

您正在使用模态框输入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">&times;</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>

【讨论】:

  • Gowri 我希望我能给你投票 100 次,谢谢你解决了这个问题!我实际上打算编辑该行六次,但一直在用其他解决方案绕圈子!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2015-06-04
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多