使用PHP_SELF发布后更新表单字段

使用PHP_SELF发布后更新表单字段,php,javascript,Php,Javascript,我正在使用php_self提交表单。数据发布后,我希望将计算值传递给同一页面上的另一个表单字段,即原始表单 $title\u保险字段保持空白。你知道为什么吗?谢谢 <?php if(isset($_POST['submit'])) { $sale_price = $_POST['sale_price']; // posted value $title_insurance = ($sale_price * 0.00575) + 200; ?> <script type="tex

我正在使用php_self提交表单。数据发布后,我希望将计算值传递给同一页面上的另一个表单字段,即原始表单

$title\u保险字段保持空白。你知道为什么吗?谢谢

<?php
if(isset($_POST['submit']))
{
$sale_price = $_POST['sale_price']; // posted value
$title_insurance = ($sale_price * 0.00575) + 200;

?>
<script type="text/javascript">
document.getElementById("title_insurance").value='<?php echo $title_insurance ; ?>'; 
</script>
<?php     }     ?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="post" enctype="multipart/form-data">
 <input name="sale_price" type="text" id="sale_price" size="15">
<input name="title_insurance" type="text" id="title_insurance" size="15" value="<?php echo $title_insurance; ?>" />
<input name="submit" type="submit" class="bordered" id="submit" value="Calculate" />    
</form>

document.getElementById(“所有权保险”)。值=“”;

您想要做的事情最好由AJAX完成。
结构已经过时,并且没有用处,除非您将用户转移到另一个页面并随附发送一些数据,或者,如果您已完成获取用户数据,并且只想处理输入的内容并显示完成消息

如果您希望在同一页面上继续处理,那么AJAX就是一条出路。使用AJAX的最佳方法是使用一个单独的处理器文件(PHP)来接收数据、处理数据并将其发送回

要将
构造转换为AJAX,您只需删除
标记,并将submit按钮从
type=“submit”
转换为
type=“button”id=“mybutton”
,然后使用按钮和其他元素上的id来获取它们包含的数据并将其提供给AJAX代码块。底部链接中的示例显示了您需要了解的内容-它们是简单、有用的示例

为了节省资源,您可以对多个AJAX请求使用同一个PHP处理器页面——只需发送一个变量(例如“request=save_To_db&first_name=bob&last_name=jones”),并测试接收到的“request”将决定PHP处理器文件的功能并返回


,以及它所包含的示例将有所帮助。

您想要做的事情最好由AJAX完成。
结构已经过时,并且没有用处,除非您将用户转移到另一个页面并随附发送一些数据,或者,如果您已完成获取用户数据,并且只想处理输入的内容并显示完成消息

如果您希望在同一页面上继续处理,那么AJAX就是一条出路。使用AJAX的最佳方法是使用一个单独的处理器文件(PHP)来接收数据、处理数据并将其发送回

要将
构造转换为AJAX,您只需删除
标记,并将submit按钮从
type=“submit”
转换为
type=“button”id=“mybutton”
,然后使用按钮和其他元素上的id来获取它们包含的数据并将其提供给AJAX代码块。底部链接中的示例显示了您需要了解的内容-它们是简单、有用的示例

为了节省资源,您可以对多个AJAX请求使用同一个PHP处理器页面——只需发送一个变量(例如“request=save_To_db&first_name=bob&last_name=jones”),并测试接收到的“request”将决定PHP处理器文件的功能并返回

,以及其中包含的示例将有所帮助。

请先尝试一下

在你的编码过程中,你错过了这个
$\u POST['button']


document.getElementById(“所有权保险”)。值=“”;
先试试这个

在你的编码过程中,你错过了这个
$\u POST['button']


document.getElementById(“所有权保险”)。值=“”;

getElementById
参数中有一个额外的空间:

//                                      VV
document.getElementById("title_insurance ").value='<?php echo $title_insurance ; ?>'; 
//VV
document.getElementById(“所有权保险”)。值=“”;

您的
getElementById
参数中有一个额外的空间:

//                                      VV
document.getElementById("title_insurance ").value='<?php echo $title_insurance ; ?>'; 
//VV
document.getElementById(“所有权保险”)。值=“”;

提交按钮被称为
按钮
,如果您正在输出javascript以修改DOM创建元素标题后需要运行的值,也可以使用该按钮

if(isset($_POST['button']))
{
    $sale_price = $_POST['sale_price']; // posted value
    $title_insurance = ($sale_price * 0.00575) + 200;
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="post" enctype="multipart/form-data">
   <input name="sale_price" type="text" id="sale_price" size="15">
   <input name="title_insurance" type="text" id="title_insurance" size="15" value="<?php echo $title_insurance; ?>" />
   <input name="button" type="submit" class="bordered" id="button" value="Calculate" />    
</form>


<script type="text/javascript">
    document.getElementById("title_insurance").value='<?php echo $title_insurance ; ?>'; 
</script>
if(设置($\u POST['button']))
{
$sale\u price=$\u POST['sale\u price'];//过账价值
$title_insurance=($sale_price*0.00575)+200;
}
?>

提交按钮被称为
按钮
,如果您正在输出javascript以修改DOM创建元素title\u后需要运行的值,那么提交按钮也被称为
按钮

if(isset($_POST['button']))
{
    $sale_price = $_POST['sale_price']; // posted value
    $title_insurance = ($sale_price * 0.00575) + 200;
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="post" enctype="multipart/form-data">
   <input name="sale_price" type="text" id="sale_price" size="15">
   <input name="title_insurance" type="text" id="title_insurance" size="15" value="<?php echo $title_insurance; ?>" />
   <input name="button" type="submit" class="bordered" id="button" value="Calculate" />    
</form>


<script type="text/javascript">
    document.getElementById("title_insurance").value='<?php echo $title_insurance ; ?>'; 
</script>
if(设置($\u POST['button']))
{
$sale\u price=$\u POST['sale\u price'];//过账价值
$title_insurance=($sale_price*0.00575)+200;
}
?>

您正在检查isset($\u POST['submit']),但表单中没有名为'submit'的POST变量。您有一个提交按钮,但它不是“提交”,我只是将提交按钮的名称和id更改为“提交”,但它仍然不起作用。使用JS是一种方法,还是应该将php填充到表单的值中?如果您将表单发布到同一页面,那么您不需要action属性,因为这是默认行为。您使用的enctype也是默认值。javascript例程将导致错误,因为页面尚未完全加载。@user2413654请参阅下面的VIVEK-MDU答案,他的代码有效。你根本不需要javascript的东西,也不需要通过寻找表单字段来测试帖子。这是不可靠的,正如您的代码完美地演示的那样。改为使用
if($\u服务器[“请求方法”]=='POST']){…}
,这是100%可靠的。您正在检查isset($\u POST['submit']),但表单中没有名为'submit'的POST变量。您有一个提交按钮,但它不是“提交”,我只是将提交按钮的名称和id更改为“提交”,但它仍然不起作用。使用JS是一种方法,还是应该将php填充到表单的值中?如果您将表单发布到同一页面,那么您不需要action属性,因为这是默认行为。您使用的enctype也是默认值。javascript例程将导致错误,因为页面尚未完全加载。@user2413654请参阅下面的VIVEK-MDU答案,他的代码有效。而且你根本不需要javascript的东西