繁体   English   中英

php脚本无法在服务器上运行,而可以在localhost [xampp]上运行

[英]php script isn't working on server while works on localhost [xampp]

在xampp上运行时,此代码有效,但在Web服务器上仅出现空白页。 请帮忙 !

PHP版本:Xampp:7.2.7服务器:7.1.18

<?php
 require_once("config.php");
 $bar=$conn->query("SELECT DATE_FORMAT(date,'%m')as mn,sum(amount)as am FROM 
 ENTRY WHERE sale_status='paid' OR sale_status='in process' AND YEAR(date) = 
 YEAR(CURDATE()) GROUP BY mn");
    while($arr=$bar->fetch_assoc()){
        $arry[array_shift($arr)]=$arr['am'];
    }

$bar2=$conn->query("SELECT DATE_FORMAT(date,'%m')as mn,sum(amount)as am FROM ENTRY WHERE sale_status='chargeback' OR sale_status='refund' OR sale_status='fraud' OR sale_status='adjusted' AND YEAR(date) = YEAR(CURDATE()) GROUP BY mn");
    while($arr2=$bar2->fetch_assoc()){
        $arry2[array_shift($arr2)]=$arr2['am'];
    }
$arr3=array();
for($i=1;$i<=12;$i++){
    if(!array_key_exists(sprintf("%02d",$i), $arry)){
        $arry[sprintf("%02d",$i)]="0";
    }
    if(!array_key_exists(sprintf("%02d",$i), $arry2)){
        $arry2[sprintf("%02d",$i)]="0";
    }
    echo $arry[sprintf("%02d",$i)]-$arry2[sprintf("%02d",$i)].",";
}
?>

您应该使用event.preventDefault();

<script type="text/javascript">
function alert(event){
event.preventDefault();
  $.ajax({
    method: "POST",
    url: "../enq.php",
    data:$('#eform').serialize() + "&uname=<?=$u_name?>&pname=<?=$titlename?>&link=<?=$splink?>",
    success: function(msg) {
    if(msg!=""){
    alert("Query Successfully sent !");
    }
    else{
    alert("Some Error");
    }
 }
}); }
</script>

通过在表单的onsubmit属性内返回false来防止提交。 还将自定义函数alert()重命名为其他名称,以免与同名的js本机函数混淆。

尝试:

<form method="post" id="eform" onsubmit="return alert2();">
Name<input type="text" name="name" required>
URL<input type="text" name="link" required>
<button type="submit" value="submit">Submit Me</button>
</form>

<script type="text/javascript">
function alert2(){
  $.ajax({
    method: "POST",
    url: "enq.php",
    data:$('#eform').serialize() + "&uname=<?=@$u_name?>&pname=<?=@$titlename?>",
    success: function(msg) {
        if(msg!=""){
            alert("Query Successfully sent ! Msg: " + msg);
        }
        else{
            alert("Some Error");
        }
    }
}); 
    return false;
}

</script>

使用event.preventDefault()和event.stopPropagation()防止提交时重新加载页面。 event.stopPropagation()将在Firefox浏览器上运行。

如下更改表单属性:

<form method="post" id="eform" name="eform" onsubmit="alert()">
Name<input type="text" name="name" required>
URL<input type="text" name="link" required>
<button type="submit" value="submit"></button>
</form>

并编写如下的javascript:

$('form[name=eform]').on('submit', function(event){
  event.preventDefault();
  event.stopPropagation();

  $.ajax({
     url: '../enq.php',
     type: 'POST',
     dataType: 'json',
     data: $(this).serialize(),
     success: function(result){
        // your success script
     },
     error: function(jqXHR, textStatus){
       // your error scripts
     }
  });

});

不要使用按钮类型作为提交,使用类型按钮或使用锚标记并放置一些CSS以将其视为按钮。当您使用按钮类型作为提交时,它使用的是不带js的普通表单提交。

<button type="button" onClick="save()" value="submit"></button>

而且也不要使用警报功能,它已经在Js中定义了功能。 使用类似保存的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM