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

buttonDOM が要素 title_insurance を作成した後に実行する必要がある値を修正するために JavaScript を出力している場合も、送信ボタンが呼び出されます。

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 に答える
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

あなたがやりたいことは、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

パラメータに余分なスペースがありgetElementByIdます:

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