我现在正在学习PHP,所以请原谅我的愚蠢问题,我无法解决。我创建了一个简单的web表单,在这里我显示由用户输入的值。
function submitform()
{
document.forms["myForm"].submit();
} // in head of html
<form action ="res.php" id="myForm" method="post" >
Name: <input type="text" name="name" size="25" maxlength="50" /> <br> </br>
Password:<input type="password" name="password" size="25" maxlength="50" />
Description: <textarea name="editor1"> </textarea>
<input type="submit" value="Submit" onclick="submitForm()" />
</form>
和res.php包含:
foreach($_POST as $field => $value)
{
echo "$field = $value";
}
当我点击提交按钮时,我只得到一个空白页面,没有表单中的任何值。谁能让我知道我错过了什么?
不需要javascript。这应该做:
<form action ="res.php" id="myForm" method="post" >
Name: <input type="text" name="name" size="25" maxlength="50" /> <br> </br>
Password:<input type="password" name="password" size="25" maxlength="50" />
Description: <textarea name="editor1"> </textarea>
<input type="submit" value="Submit" />
</form>
让我们从修复错误开始:
JavaScript
区分大小写。我看到你的函数名是submitform
,窗体的onclick
调用submitForm
。
从您向我们展示的内容来看,javascript并不是真正必要的,我会在一个php页面上尝试一下,看看它是否有效:
创建test.php文件用于测试:
<?php
if($_POST){
foreach($_POST as $key=>$value){
echo "$key: $value<br />";
}
}else{
<form action="test.php" method="post">
<input type="text" value="1" name="name1" />
<input type="text" value="2" name="name2" />
<input type="submit" value="submit" name="Submit" />
</form>
}
?>
如果它确实有效,慢慢地进入当前的表单设置,看看是什么破坏了它。如果它不起作用,一定有更大的东西在起作用。
你现在应该做两件事。
- 删除提交表单的JavaScript函数。这不是必需的(或必要的)。提交按钮的默认行为是…嗯…提交。你不需要用JavaScript帮助它。
- 使用
error_reporting(E_ALL)
使能错误显示
完成这两件事之后,您应该能够更容易地调试和评估问题。
将php代码放入php标签中!
<?php
foreach($_POST as $field => $value)
{
echo $field ." = ." $value.'<br />';
}
?>
如果你这样做
<?php
print_r($_POST);
?>
你得到了什么?如果这仍然不起作用,您的服务器解析php吗?
创建test.php文件并直接访问它http://localhost/test.php或其他URL
<?php
echo 'Hello';
?>
如果这不起作用…这是一个完全不同的问题
您可以使用PHP的fsubmit库提交HTML表单。
的例子:
require_once 'fsubmit.php';
$html = "<form action ='res.php' method='post'><input type='text' name='name'/></form>";
$form = new Fsubmit();
$form->url = 'http://submit_url_here.com';
$form->html = $html;
$form->params = ['name'=>'kokainom'];
$response = $form->submit();
echo $response['content'];