在JQuery中从PHP获取表单值

Getting form value from PHP in JQuery

本文关键字:表单 获取 PHP JQuery 中从      更新时间:2023-09-26

我想从php文件获得一个表单输入值到javascript文件,如下所示:PHP文件:

<html>
    <head>
    <meta charset = "UTF-8">
    <title> Search Customer by Field </title>
            <script type="text/javascript" src="../lib/jquery-1.10.2.js"></script>
            <script type="text/javascript" src="../src/search-by-invoice-no.js"></script>
            <table id="results" border="1"></table>
    </head>
    <body>
    <?php
            if( isset($_GET["invoiceNo"]) && "" != $_GET["invoiceNo"])
            {
            }
            else
            {
                ?>
                <form id = "form1">
                Invoice Number <input id="invoice" name="invoiceNo" type="text" value="<?=isset($_GET['invoiceNo'])? $_GET['invoiceNo'] :""?>">
                <br/>
                <input id="submit_btn" type="submit">
                </form>
                <?php
            }
            ?>
    </body>
</html>

JS文件:

$(document).ready(function() {
var invoiceNo = $('#invoice').val(); //Returns undefined
alert(invoiceNo); 
//etc...

为什么会有这种行为?我尝试了一些其他方法,但都失败了。

您的if/else结构毫无意义。如果$_GET['invoiceNo']存在并且不为空,则执行if逻辑,因此表单永远不会创建。但是,在您的表单中,您检查$_GET['invoiceNo']是否存在。它永远不会,除非它是空的,那么在那里使用它有什么意义呢?

您有几个错误:如果/else是您没有获得值的原因,则反转,并且除其他外,您在php输出中的input和input元素中缺少一个括号,应该以/>结尾

<html>
    <head>
    <meta charset = "UTF-8">
    <title> Search Customer by Field </title>
            <script type="text/javascript" src="../lib/jquery-1.10.2.js"></script>
            <script type="text/javascript" src="../src/search-by-invoice-no.js"></script>
    </head>
    <body>
    <?php
            if( isset($_GET["invoiceNo"]) && "" != $_GET["invoiceNo"])
            { ?>
                <form id = "form1" action='mypage.php' method='GET'>
                Invoice Number <input id="invoice" name="invoiceNo" type="text" value="<?php echo (isset($_GET['invoiceNo']))? $_GET['invoiceNo'] :""; ?>" />
                <br/>
                <input id="submit_btn" type="submit" />
                </form>
            <?php
            }
            else
            {
                ?>
                   <p>No value received</p>
                   <input id="invoice" name="invoiceNo" type="hidden" value="0" />
                <?php
            }
            ?>
    </body>
</html>

此外,你甚至不需要检查它是否像你已经做的那样设置,所以像这样的东西

Invoice Number <input id="invoice" name="invoiceNo" type="text" value="<?php echo $_GET['invoiceNo']; ?>" />

也能正常工作

编辑

<html>
    <head>
    <meta charset = "UTF-8">
    <title> Search Customer by Field </title>
            <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
            <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
            <script>
                $(document).ready(function(){
                    var invoice = $('#invoice').val();
                                if(invoice == 0)
                                {
                                   alert('No value was passed');
                                }
                                else 
                                {
                                   alert(invoice);
                                }
                });
            </script>
    </head>
    <body>
    <?php
            if( isset($_GET["invoiceNo"]) && "" != $_GET["invoiceNo"])
            { ?>
                <form id = "form1" action='mypage.php' method='GET'>
                Invoice Number <input id="invoice" name="invoiceNo" type="text" value="<?php echo $_GET['invoiceNo']; ?>" />
                <br/>
                <input id="submit_btn" type="submit" />
                </form>
            <?php
            }
            else
            {
                ?>
                   <p>No value received</p>
                   <input id="invoice" name="invoiceNo" type="hidden" value="0" />
                <?php
            }
            ?>
    </body>
</html>