1

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

$title_insurance 字段保持空白。关于为什么的任何想法?谢谢!

<?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>
4

4 回答 4

0

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

//                                      VV
document.getElementById("title_insurance ").value='<?php echo $title_insurance ; ?>'; 
于 2013-08-16T19:24:55.840 回答
0

你想做的最好由 AJAX 完成。除非您将用户转移到另一个页面并随之发送一些数据,否则该<form>构造已过时且无用 - 或者,如果您已完成获取用户数据并且只想处理输入的内容并显示完成消息。

如果您希望在同一页面上继续处理,那么 AJAX 是您的最佳选择。使用 AJAX 的最佳方式是拥有一个单独的处理器文件 (PHP),用于接收数据、处理数据并将其发回。

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

为了节省资源,您可以对多个 AJAX 请求使用相同的 PHP 处理器页面——只需发送一个变量(例如 'request=save_to_db&first_name=bob&last_name=jones', )并测试接收到的“请求”,这将确定什么您的 PHP 处理器文件执行并回显。

这篇文章及其包含的示例将有所帮助。

于 2013-08-16T19:22:30.297 回答
0

先试试这个

在你编码时你错过了这个$_POST['button']

<?php
if(isset($_POST['button']))
{
$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="button" type="submit" class="bordered" id="button" value="Calculate" />    
</form>

并参考这个FIDDLE它会对你更有帮助..

于 2013-08-16T19:23:14.177 回答
0

提交按钮称为button,如果您要输出 javascript 来修改它需要在 DOM 创建元素 title_insurance 后运行的值。

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>

在这种情况下,更好的方法是忘记 javascript,因为它是不必要的并执行此操作

// I am assuming you have initialized $title_insurance 
// somewhere above here to its default value!!!!
$title_insurance = isset($_POST['button']) ? ($_POST['sale_price'] * 0.00575) + 200 : $title_insurance;
?>

<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>
于 2013-08-16T19:27:45.180 回答