3

確認ボックスに試験の名前を含めたいのですが、現時点では試験の名前が表示されていません。誰かが理由を知っていますか?試験の名前は、投稿する必要のあるテキスト入力に由来します。

以下は、試験名のテキスト入力を含むフォームです。

<?php

$newassessment = (isset($_POST['Assessmentnew'])) ? $_POST['Assessmentnew'] : '';

$editsession = "<form action=".htmlentities($_SERVER['PHP_SELF'])." method='post' id='updateForm'>

    <table>
    <tr>
    <th>Assessment:</th>
    <td><input type='text' id='newAssessment' name='Assessmentnew' readonly='readonly' value='' /> </td>
    </tr>
    </table>

    <p><input id='updateSubmit' type='submit' value='Update Date/Start Time' name='updateSubmit' onClick='myClickHandler(); return false;'/></p>

    </form>
";

echo $editsession;


}

?>

以下は確認ボックスです。

<script type="text/javascript">

        function showConfirm(){

         var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: " <?php echo  $newassessment ?> );

         if (confirmMsg==true)
         {
         submitform();   
     }
}


</script>
4

6 に答える 6

0

これを試してみてください、私はそれがあなたを助けることを願っています

 //hold your $_POST['Assessmentnew'] value into a hidden field like this,

<input type="hidden" name='hid1' id="hid1" value="<?php echo $_POST['Assessmentnew'];?>">

function showConfirm()
{
      var session_value=document.getElementById('hid1').value;
      var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: "+session_value);
     if (confirmMsg==true)
     {
        submitform();   
     }
 }
</script>
于 2012-11-09T10:59:28.327 に答える
0

引用符内の文字列を出力する必要があります。そうしないと、変数として取得されます。

var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: <?php echo  $newassessment ?>" );

たとえば、 の値$newassessmentが「foo」の場合、コードは次のようになります。

var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: " foo );

+演算子がなく、foo(おそらく) 未定義であるため、これは無効です。

于 2012-11-08T17:19:13.297 に答える
0

ページが実際に投稿される前に、JavaScript が実行されると想定しています。つまり、これは実際の に対する JavaScript の確認POSTであり、そのため$_POST配列にはデータが取り込まれません。あれは正しいですか?その場合は、次のことを行う必要があります。

var formval = document.getElementById('newAssessment').value;
var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: " + formval );
于 2012-11-08T17:20:34.480 に答える
0

このコードは、投稿リクエストを受け取るスクリプト内にありますか? の場合、$_POST の値が設定されているかどうかをチェックする条件は、値が投稿されず、変数 $newassessment に '' が割り当てられていないため、false と評価されます。chrome または safari の Web インスペクタを使用して、値が正しい名前でポストされていることを再確認します。

** また、JavaScript で変数の値を連結する前に + 記号を見逃しています。また、連結を引用符で囲みます。

于 2012-11-08T17:21:10.250 に答える
0

$_POST 配列は、フォームが POST されるまで入力されません。JavaScript 確認ダイアログは POST の前兆であるため、テンプレート変数はまだ設定されていないため、'' と等しくなります。

于 2012-11-08T17:23:23.727 に答える
0

PHP は、ページがブラウザに読み込まれる前に実行されます。つまり、ソースを調べても、JavaScript コードに変数が含まれていません。

これを確認ステートメントの前に含めてみてください:

var formInput = document.getElementById('newAssessment').value;

そしてあなたの他の行を作ります

var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: " + formInput );
于 2012-11-08T17:25:12.603 に答える