单击链接时运行php代码

时间:2012-12-09 17:33:13

标签: php javascript jquery ajax variables

当用户点击链接时,我需要执行一些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到实际的页面?

5 个答案:

答案 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)

嘿嘿,我们澄清了这个问题:-)。好吧,我告诉你。该过程的顺序与该评论相反。将记录表中的第一个数据,然后继续下载。利用我给你的代码,我们会:if(空($ _GET ['filename']){$ query =“INSERT INTO LOWERED VALUES('。”$ program。“','”。$ username。“' '“。$ time。”')“if($ result = mysql_query($ query,$ link)){/ /正确录制}否则{/ /没有录制记录} / /继续下载。标题(”位置:“。$ program”;} else {echo“错误。文件无效”;}希望这有帮助(我没有深入研究代码,因为没有与数据库服务器的连接,基数的选择等。 ..),但基本上会。当然,您可以修改它并将标题放在if中,当在表中正确记录时,可以更好地控制下载。问候。

答案 4 :(得分:-1)

你混合使用PHP和Javascript。您无法在PHP代码中调用alert()。如果你想要alert(),你必须在Javascript

中这样做
<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
alert("Error!");
return false;
}
</script>