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

您需要在引号内输出字符串,否则将其作为变量:

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 中的值是否设置的条件正在评估为 false,因为您的值未发布并将 '' 分配给变量 $newassessment。使用 chrome 或 safari 的 Web 检查器仔细检查该值是否已发布且名称正确。

** 在连接 javascript 中的变量值之前,您还错过了一个 + 号。还要用引号将您的串联括起来。

于 2012-11-08T17:21:10.250 回答
0

在表单发布后,您的 $_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 回答
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 回答