我已经研究了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 代码何时写入?
不使用 $_POST ,使用 $_REQUEST 或 $_GET
在PHP 脚本中在哪里设置 $field 1 和 $field 2?
试试URL url = new URL("myphpfile.php?field1=" + field1 + "&field2=" + field2);
嗯,我觉得我已经尝试了所有可以用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,以执行与数据库相关的操作。耶!