当用户点击链接时,我需要执行一些PHP代码。我找到了答案here,我在网站标题中写了这个:
<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
return false;
}
</script>
这在身体中,我需要代码:
<a href="#" onclick="sottoponi();">Prova</a>
然后我在sottoponi.php
上写了这个<?php
$variable= value;
if ($variable < 1) {
// do some php code;
}
else if ($variable > 1) {
$jav1 = <<<MAR1
<script language="javascript" type="text/javascript">
alert("Error!");
</script>
MAR1;
echo $jav1;
}
?>
我确定我做错了,因为我没有得到警报(而且我确定$ variable&gt; 1是真的,我回应了变量!):我怎样才能从sottoponi传递信息.php到实际的页面?
答案 0 :(得分:4)
您没有获得alert
,因为您生成的js代码未添加到页面中。要运行它,您需要从ajax请求中获取响应并将其添加到DOM:
function sottoponi() {
$.get("sottoponi.php", function(response){
$('body').append(response);
});
return false;
}
请注意,此解决方案不是很优雅。在这种情况下我会做的是用我的PHP中的JSON响应,所以我们可以很容易地从js侧知道操作是否成功:
function sottoponi() {
$.getJSON("sottoponi.php", function(response){
if(response.error !== false) {
alert("ERROR!");
}
});
return false;
}
PHP的用途是:
<?php
$variable = value;
$response = array('error' => false);
if ($variable < 1) {
// some php logic;
} else if ($variable > 1) {
$response['error'] = true;
} else {
// some more logic here if needed
}
echo $json_encode($response);
?>
答案 1 :(得分:2)
如果你想发送一个完整的脚本并进行处理,你应该使用jQuery的getScript函数代替:$.getScript("sottoponi.php");
尽管将回调函数传递给get()会更加困惑处理结果:
$.get("sottoponi.php", function(res) {
alert(res);
});
如果它是一个复杂的结构,你可以使用PHP的json_encode进行编码。
答案 2 :(得分:0)
您正在使用jQuery.get(),这是jQuery.ajax()的简写。因此,以下是您可以更明确地提交sottoponi.php的方法:
$.ajax({
url: "sottoponi.php",
type: "POST",
success:function(result){
//You can place an alert here such as: alert("Successful Ajax Request Complete");
}
});
答案 3 :(得分:0)
答案 4 :(得分:-1)
你混合使用PHP和Javascript。您无法在PHP代码中调用alert()
。如果你想要alert()
,你必须在Javascript
<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
alert("Error!");
return false;
}
</script>