0

当用户单击链接时,我需要执行一些 php 代码。我在这里找到了答案,并在网站标题中写了这个:

<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 > 1 是真的,我回显了变量!):如何将信息从 sottoponi.php 传递到实际页面?

4

5 回答 5

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);
?>
于 2012-12-09T17:37:38.867 回答
2

如果您想发送整个脚本并对其进行处理,您应该改用 jQuery 的getScript函数:$.getScript("sottoponi.php");尽管将回调函数传递给get()来处理结果会更容易混淆:

$.get("sottoponi.php", function(res) {
    alert(res);
});

其中,如果它是一个复杂的结构,您可以使用 PHP 的json_encode进行编码。

于 2012-12-09T17:40:48.770 回答
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");
        }
});
于 2012-12-09T17:50:36.540 回答
0

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

于 2012-12-10T02:16:25.023 回答
-1

你混合 PHP 和 Javascript。您不能调用alert()PHP 代码。如果你想要一个alert()你必须在Javascript中这样做

<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
alert("Error!");
return false;
}
</script>
于 2012-12-09T17:37:01.227 回答