0

我已经研究了 Oracle 文档和示例,但仍然无法使其正常工作。

我有一个 Java Applet,它只是尝试使用 URLConnection 和 OutputStreamWriter 通过 POST 将文本字段发送到 PHP 脚本。Java 端似乎工作正常,没有抛出异常,但 PHP 没有在我的页面上显示任何输出。我是 PHP 菜鸟,所以请多多包涵。

这是相关的Java部分:

    try {
            URL url = new URL("myphpfile.php");
            URLConnection con = url.openConnection();
            con.setDoOutput(true);
            out = new OutputStreamWriter(con.getOutputStream());
            String outstring = "field1=" + field1 + "&field2=" + field2;
            out.write(outstring);

            out.close(); 

    }
    catch (Exception e) {
        System.out.println("HTTPConnection error: " + e);
        return;
    }

这是相关的PHP代码:

    <?php
            $field1= $_POST['field1'];
            $field2= $_POST['field2'];
            print "<table><tr><th>Column1</th><th>Column2</th></tr><tr><td>" .
                 $field1 . "</td><td>" . $field2 . "</td></tr></table>";
    ?>

我所看到的只是表标题 Column1 和 Column2 (让我们保持这些名称通用以用于测试目的)。我究竟做错了什么?我是否需要告诉我的 PHP 脚本来检查我的 Java 代码何时写入?

4

2 回答 2

1

不使用 $_POST ,使用 $_REQUEST 或 $_GET

在哪里设置 $field1 和 $field2 在你的 php 脚本中?

尝试 URL url = new URL("myphpfile.php?field1=" + field1 + "&field2=" + field2);

于 2013-11-05T09:27:19.600 回答
0

好吧,我觉得我已经尝试了所有可以用 PHP 尝试的东西,所以我最终选择了JSObject。现在这很容易。

工作Java代码:

JSObject window = JSObject.getWindow(this);

// invoke JavaScript function
String result = "<table><tr><th>Column1</th><th>Column2</th></tr><tr><td>" 
+ field1 + "</td><td>" + field2 + "</td></tr></table>";
window.call("writeResult", new Object[] {result});

相关工作Javascript:

function writeResult(result) {
        var resultElem =
            document.getElementById("anHTMLtagID");
        resultElem.innerHTML = result;
    }

从这里我什至可以通过 Ajax 将结果从 Javascript 发送到 PHP 以执行与数据库相关的操作。耶!

于 2013-11-06T06:34:49.437 回答