【问题标题】:how to send a text box value without submitting form in php?如何发送文本框值而不在 php 中提交表单?
【发布时间】:2011-12-22 13:21:03
【问题描述】:

单击链接或按钮后,我想刷新同一页面并在同一页面的文本框中显示输入的值。

我有以下代码:

 <?php 
 echo '<h3>Fee Payment</h3>';

 echo "<form id='myFormId' name='myFormName'>";
 echo " <input type='text' name='myTextField'>";
 echo "<a href='{$_SERVER['PHP_SELF']}?student_no=myTextField'> Search Student</a>";


 if (!(isset($_GET[student_no])))
 { 
    echo "No Student is available.";
 } 
 else
 {
    $student_no = $_GET['student_no'];
    echo "Student NO:".$studen_no;
 }
 ?>

请指导我如何实现目标以及我的代码有什么错误。

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    <?php 
    echo '<h3>Fee Payment</h3>';
    
    if(isset($_POST['myTextField']))
     $value=$_POST['myTextField'];
    else
     $value='';
    
    echo "<form id='myFormId' name='myFormName' method='post'>";
    echo " <input type='text' name='myTextField' value='$value'>";
    echo "<a href='{$_SERVER['PHP_SELF']}?student_no=myTextField'> Search Student</a>";
    

    您还需要表单中的提交按钮和表单关闭标记。

    【讨论】:

      【解决方案2】:

      你想要的是 AJAX。我只是为您提供一个示例,说明如何使用jQuery 进行操作,但您也可以使用任何其他库/框架或任何其他方式。您还可以查看this article 了解更多可用性详情。

      在主页:-

      <?php
      echo '<h3>Fee Payment</h3>';
      
      echo "<form id='myFormId' name='myFormName'>";
      echo "<input type='text' name='myTextField' id='myTextField' />";
      echo '<a href="javascript:void()" id="inline_submit_a">Search Student</a>';
      echo "</form>";
      ?>
      
      <script type="text/javascript">
      $('#inline_submit_a').click(function(evt){
          $.ajax({
             type: "GET",
             url: "handler.php",
             data: {text:$('#myTextField').val()}
          });
      
          evt.preventDefault();
          return false;
      });
      </script>
      

      在“handler.php”页面中:-

      <?php
      if (!(isset($_GET[student_no])))
      { 
         echo "No Student is available.";
      } 
      else
      {
         $student_no = $_GET['student_no'];
         echo "Student NO:".$student_no;
      }
      ?>
      

      您可以在“handler.php”页面中编写所有与数据库相关的逻辑。

      希望对你有帮助。

      【讨论】:

      • 看到标题,我还以为他想要Ajax,但看了描述“我要刷新同一页面”后,显然他要发布到同一页面。另外,我认为 OP 并不能真正很好地处理 Ajax。
      【解决方案3】:
      1. 您正在使用链接提交表单,但您应该使用提交按钮。 &lt;input type="submit" value="Search student" /&gt;
      2. 您没有关闭&lt;form&gt; 标签。
      3. 您正在使用$_GET[student_no],这将使PHP 查找student_no 的定义。由于它是一个字符串,所以将其表示为一个。 $_GET['student_no'] 更好。

      【讨论】:

        【解决方案4】:

        为什么不能提交表单?你想要一个搜索链接而不是一个按钮吗? 您可以配置链接以通过 javascript 提交表单并将表单操作更改为 GET,如下所示:

        <?php 
        echo '<h3>Fee Payment</h3>';
        
        echo "<form id='myFormId' name='myFormName' 
           action='{$_SERVER['PHP_SELF']}' method='GET'>";
        echo " <input type='text' name='student_no'>";
        echo "<a href='javscript:document.forms.myFormName.submit()'> 
            Search Student</a>";
        
        ...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-10-21
          • 2016-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多