如何将$ _POST值放入javascript确认框中

时间:2012-11-08 17:16:05

标签: php javascript

我希望能够在确认框中包含考试名称,此时它不会显示考试名称。有谁知道为什么?考试的名称来自应该发布的文本输入。

下面是包含考试名称的文字输入的表格:

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

6 个答案:

答案 0 :(得分: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(可能)未定义。

答案 1 :(得分:0)

我假设JavaScript应该在页面实际发布之前运行。即,它是对实际POST的JavaScript确认,因此不会填充$_POST数组。那是对的吗?如果是这样,您需要执行以下操作:

var formval = document.getElementById('newAssessment').value;
var confirmMsg=confirm("Are you sure you want to update the following:" + "\n" + "Exam: " + formval );

答案 2 :(得分:0)

此代码是否在接收帖子请求的脚本中?如果,那么应该发生的是,检查$ _POST中的值是否已设置的条件是评估为false,因为您的值未发布并将''分配给变量$ newassessment。使用chrome或safari的Web检查器仔细检查是否正在发布值并使用正确的名称。

**在javascript中连接变量值之前,你也错过了一个+号。也可以用引号括起你的连接。

答案 3 :(得分:0)

在表单发布之后,您的$ _POST数组才会被填充,并且由于您的javascript确认对话框是POST的前身,因此您的模板变量仍未设置,因此等于''。

答案 4 :(得分:0)

PHP在浏览器中加载页面之前运行,这意味着如果查看源代码,您的javascript代码将不包含变量。

在确认声明之前尝试包含此内容:

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

并制作你的另一行

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

答案 5 :(得分: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>