我想我怎么能得到一个对话框,似乎我需要使用javascript但这不让我跟进PHP代码取决于答案,除非有办法吗?
<?php
$ime = "Marko";
echo <<< EOT
<SCRIPT language="JavaScript">
var hi= confirm("Do you really want to deactivate $ime?");
if (hi== true){
<?php ?>
alert("$ime Deactivated!");
// I need to do php code here...
}else{
alert("Skipping $ime");
// I need to do php code here...
}
</SCRIPT>
EOT;
?>
答案 0 :(得分:1)
PHP是一种服务器端脚本语言。你不能用JavaScript触发它。
答案 1 :(得分:1)
改进@ papirtiger的答案,您可以使用AJAX无缝地传递PHP代码而无需重新加载页面。
所有AJAX都是你可以将数据从javascript传递到PHP文件的方式。因为PHP是服务器端,所以需要执行的任何PHP脚本都必须在服务器上。 PHP生成脚本并将其发送到客户端,并在生成的页面下载时完成客户端和服务器之间的连接。 Javascript可以继续其工作,因为它是客户端。但由于它位于客户端的计算机上,因此无法在其中运行PHP脚本,因为它无法解释。 AJAX从PHP获取数据并像Form一样发送(使用POST或GET变量),在服务器上执行单独的PHP文件,从脚本中获取响应并将其放入javascript而不重新加载整个页面。
以下是您的脚本的样子。
<script>
if (window.confirm("Are you sure?")){
// Begin the AJAX function
$.ajax({
// Declare the type (GET or POST)
type = "POST",
// The local server location to the PHP script to get the response from
url = "yes.php",
// Data to send (in this case nothing needs to be sent)
data = "",
// Get the response if a script is executed successfully
success: function(response) {
// Display the response from the script in an alert box
alert(response);
}
)};
} else {
// Rinse and repeat using another file
$.ajax({
type = "POST",
url = "no.php",
data = "",
success: function(response) {
alert(response);
}
)};
}
</script>
你还需要在HTML的头部包含jQuery库,否则这个AJAX markdown将无法工作,你将不得不导致传统的(和丑陋的/混乱的)纯JavaScript AJAX执行。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
希望这有帮助! :)
答案 2 :(得分:0)
@StashCat的回答是完全正确的,但是你要找的模式是这样的:
<script>
if (window.confirm("Are you sure")){
window.location("/yes.php");
} else {
window.location("/no.php");
}
</script>
请注意,正在运行的脚本将一直运行,直到退出。 然后向用户呈现网页和确认框。当他们点击是或否时,他们将被重定向并且将运行一个新脚本。
答案 3 :(得分:0)
简而言之,它不是一个很好的语言混合解决方案。根据你的代码,我可以使用像<?php <script> var some = "123"; </script> ?>
这样的php来声明一个全局变量,然后在客户端javascript代码中使用它,但我会重复它的错误方法。你最好重构你的代码。
答案 4 :(得分:0)
Php代码在Server上运行,而javascript代码在客户端(即您的浏览器)上运行。因此,您无法编写代码来在服务器端显示对话框,但您可以使用Ajax动态删除和添加HTML元素。您可以在javascript中编写对话框并调用Ajax块。 Ajax(Ajax - &gt; Async Javascript)代码的典型示例
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>