0

嗨,我正在创建一个 wordpress 插件,我在这里有点堆栈。文本框编号 1 是订单号,编号 2 是订单名称。这就是我要的。如果客户在文本框 1 中输入一个数字,即订单号,则他或她输入的值将进入数据库并获取该订单号对应的订单名称。它是实时的。无需在出现之前提交。每次他们输入内容时,它都会立即检查数据库并将其显示在文本框 2(订单名称)中。我对此进行了研究并尝试在 wordpress 中使用 ajax,但我不知道如何使用。谢谢。

4

1 回答 1

0

这里有一些样板代码可以帮助您入门......

<script type="text/javascript" charset="utf-8">
    var req;

    function handler_orderNumberField_onchange(fld) {
        var text = fld.value;
        if (text.length == 8) {
            queryForOrderName(text);
        }
    }

    function queryForOrderName(orderNumber) {
        document.getElementById('orderNameField').value = "Please wait..."

        req = new XMLHttpRequest();
        var url = "http://www.mydomain.com/getordername.php?ordernumber=" + orderNumber;

        req.onreadystatechange = function() {
            var field = document.getElementById('orderNameField');
            var rs = this.readyState;
            var status = this.status;
            if (rs == 4 && status == 200) {
                field.value = req.responseText;
            }
        };

        req.ontimeout = function() {
            document.getElementById('orderNameField').value = 'Timeout.';
        }
        req.timeout = 10000;

        req.open("GET", url, true); 
        req.send();
     }

</script>

<p>Order Number: <input type="text" name="orderNumber" value="" id="orderNumberField" onchange="handler_orderNumberField_onchange(this)"></p>
<p>Order Name: <input type="text" name="orderName" value="" id="orderNameField"></p>

注意需要自己实现一个getordername.php脚本;例子:

<?php
    $ordernr = (int) $_GET["ordernumber"];
    $result = sprintf("Testorder - Order Number %d", $ordernr);
    header("Content-type: text/plain; charset=UTF-8");
    echo $result;
    exit;

?>
于 2013-02-13T17:24:17.647 回答