我希望能够在确认框中包含考试名称,此时它不会显示考试名称。有谁知道为什么?考试的名称来自应该发布的文本输入。
下面是包含考试名称的文字输入的表格:
<?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>
答案 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>