php
  • mysql
  • 2011-12-22 68 views 0 likes 
    0

    我想刷新同一页面,并在点击链接或按钮后在同一页面的文本框中显示输入的值。如何在不提交表单的情况下发送文本框的值?

    我有以下代码:

    <?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; 
    } 
    ?> 
    

    请指导我如何达到目标,什么错误我的代码。

    回答

    0
    1. 您正在使用链接提交表单,但您应该使用提交按钮。 <input type="submit" value="Search student" />
    2. 您没有关闭<form>标记。
    3. 您正在使用$_GET[student_no]这将使PHP寻找student_no的定义。由于它是一个字符串,所以将其表示为一个字符串$_GET['student_no']比较好。
    +0

    要提交的锚点有什么问题? – Scott 2011-12-22 13:26:24

    0

    为什么你不能提交表格?你想有一个搜索链接而不是按钮? 你可以配置链路通过javascript提交表单和改变形式的行动得到这样:

    <?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>"; 
    
    ... 
    
    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>"; 
    

    您还需要在表单提交按钮,以及一个形式结束标记。

    0

    你想要的是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” 页面数据库中的逻辑。

    希望它有帮助。

    +0

    看完标题后,我还以为他想要Ajax,但在阅读“我想刷新同一页面”的描述后,很明显他想要发布到同一页面。 另外,我不认为OP可以真正处理Ajax。 – 2011-12-22 14:51:54

    相关问题