Javascript 在表单提交警告框中显示PHP变量
我有一张表格,上面有提交按钮。提交时会弹出一个警报框,通知要提交的数据。我想在上面显示php变量以获取信息(警报框),但没有得到它。我这里有代码,正在寻找解决方案。任何帮助都将不胜感激Javascript 在表单提交警告框中显示PHP变量,javascript,php,alert,Javascript,Php,Alert,我有一张表格,上面有提交按钮。提交时会弹出一个警报框,通知要提交的数据。我想在上面显示php变量以获取信息(警报框),但没有得到它。我这里有代码,正在寻找解决方案。任何帮助都将不胜感激 <form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch' + <?php echo $rpp_regn_prescribed_startd
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch' + <?php echo $rpp_regn_prescribed_startdate_new1;?> +'. Click OK to confirm or you can ignore by clicking Cancel.');">
您正在单引号外编写字符串。只需删除您的'+
和+'
:
<form class="form-horizontal" method="post" action=""
onsubmit="return confirm('You have created a new batch <?php echo $rpp_regn_prescribed_startdate_new1;?>. Click OK to confirm or you can ignore by clicking Cancel.');">
试试这个:
不需要连接,只需回显字符串中的变量即可
示例1
<form class="form-horizontal" method="post" action=""
onsubmit="return confirm('You have created a new batch <?php echo $rpp_regn_prescribed_startdate_new1;?> Click OK to confirm or you can ignore by clicking Cancel.');">
您遇到的问题是,php car在引号外回响,因此JavaScript将其标识为JavaScript变量
要理解它,请认为在请求页面时,服务器将生成php并将html发送到web浏览器。web只接收html、css和JavaScript,不接收任何php代码,只接收结果
在这里,您的web浏览器阅读以下JavaScript代码:
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch' + myphpvar +'. Click OK to confirm or you can ignore by clicking Cancel.');">
这是不正确的,因为它与代码中的任何JavaScript引用都不对应
因此,您只需要将php变量打印在字符串中,它对您的代码是透明的:
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch <?php echo $rpp_regn_prescribed_startdate_new1;?>. Click OK to confirm or you can ignore by clicking Cancel.');">
**更新的代码-**
测试
var phpVarData='';
函数validateForm()
{
var confirmrep=confirm(“您已经创建了一个新批”+phpVarData+”。单击“确定”进行确认,或者单击“取消”进行忽略。”);
如果(确认响应)
{
返回true;
}
否则{
返回false;
}
}
$rpp\u regn\u respected\u startdate\u new1返回一个值,但它被视为一个变量,因为它不在引号中,只需添加php代码周围的引号即可。这应该行得通
<form class="form-horizontal" method="post" action="" onsubmit="return
confirm('You have created a new batch' + '<?php echo
$rpp_regn_prescribed_startdate_new1;?>' +'. Click OK to confirm or you can
ignore by clicking Cancel.');">
echo”“;打印(邮政美元);回声“;
或
echo“警报”(“打印($\u POST)echo”);
你的欢迎“但你没有得到它”?这到底是什么意思?由此生成的HTML源代码是什么?这意味着没有显示php变量。保持冷静。我刚才问了一个问题。不要太在意。如果你有困难,请随意离开。谢谢@克里斯干了这个。但不起作用。警报框现在不会弹出。我的$rpp\u regn\u指定的\u startdate\u new1
是一个日期。@a浏览器控制台中是否有错误?控制台似乎不受影响。没有任何内容。@a并用一个简单的工作示例检查更新后的anwser。也尝试过这个。没有弹出提示框Myphpvar是文本或php变量。它将被视为文本。您的validateForm()
函数不返回任何内容。很抱歉,此操作失败。弹出窗口未出现。@Syscall是否可以修复此问题?代码已更新,请再次检查。创建一个test.php并粘贴代码,然后运行并单击test按钮,您将看到结果。尝试在inspect元素中进行调试,并向我们显示您获得的输出控制台仍然为空。只是没有得到任何线索。伙计,我不是在说控制台,检查元素并检查浏览器上的表单输出。检查元素显示变量值。伯特:这个弹出窗口有什么问题?那么弹出窗口里有什么?
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch' + myphpvar +'. Click OK to confirm or you can ignore by clicking Cancel.');">
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch <?php echo $rpp_regn_prescribed_startdate_new1;?>. Click OK to confirm or you can ignore by clicking Cancel.');">
<form class="form-horizontal" method="post" action="" onsubmit="return confirm('You have created a new batch myphpvar. Click OK to confirm or you can ignore by clicking Cancel.');">
**Updated Code -**
<?php
$rpp_regn_prescribed_startdate_new1 = "Test Content";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="form-horizontal" method="post" action="" onsubmit="return validateForm();">
<button type="submit" name="button">test</button>
</form>
<script>
var phpVarData = '<?php echo $rpp_regn_prescribed_startdate_new1; ?>';
function validateForm()
{
var confirmResp = confirm("You have created a new batch "+phpVarData+".Click OK to confirm or you can ignore by clicking Cancel.");
if(confirmResp)
{
return true;
}
else {
return false;
}
}
</script>
</body>
</html>
<form class="form-horizontal" method="post" action="" onsubmit="return
confirm('You have created a new batch' + '<?php echo
$rpp_regn_prescribed_startdate_new1;?>' +'. Click OK to confirm or you can
ignore by clicking Cancel.');">
echo "<pre>"; print_r($_POST) ; echo "</pre>";
echo "<script>alert('"; print_r($_POST) echo"');</script>";