Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 外部JavaScript文件的正确语法_Php_Javascript_Html_Canvas - Fatal编程技术网

Php 外部JavaScript文件的正确语法

Php 外部JavaScript文件的正确语法,php,javascript,html,canvas,Php,Javascript,Html,Canvas,这是一个相当长的文件,但鉴于我无法孤立其中的一个问题,我别无选择,只能将其全部包含在内 实际文件中提到的问题是,有两个主要部分,一个是“画布绘制技术”,涉及两个函数,另一个是验证部分。我根本无法让它们在同一个JS文件中工作,尽管老实说,我很可能最终会把它们分开。我仍然想知道我在哪里犯了错误 我已经阅读了无数页的javascript函数sytax教程。等等 我并不认为这很重要,但文件是“script.php”,这样我的Web服务器就可以识别它,这样我就可以更容易地提取php变量,以便在画布绘制中使

这是一个相当长的文件,但鉴于我无法孤立其中的一个问题,我别无选择,只能将其全部包含在内

实际文件中提到的问题是,有两个主要部分,一个是“画布绘制技术”,涉及两个函数,另一个是验证部分。我根本无法让它们在同一个JS文件中工作,尽管老实说,我很可能最终会把它们分开。我仍然想知道我在哪里犯了错误

我已经阅读了无数页的javascript函数sytax教程。等等

我并不认为这很重要,但文件是“script.php”,这样我的Web服务器就可以识别它,这样我就可以更容易地提取php变量,以便在画布绘制中使用。再次感谢你的帮助

编辑:最后,有人能推荐一个好的IDE来在脚本语言/Javascript中完成这样的工作,它会告诉我简单的语法错误吗

编辑2:控制台消息显示

canvas is null
[Break On This Error] if (canvas.getContext){ 
当发生类似情况时,是否需要其他方法?我认为if“registeredUsers”then canvas=null,这将if设置为false,它应该跳过if条件中的所有内容

$(document).ready(function(){

    <?php
    include '../functions.php';
    PrintRecentRegistrations();
    // this merely prints three variables as follows.
    //var oneWeek = 0;
    //var oneMonth = 1;
    //var oneDay = 1;
    ?>

    var base = 141;
    var top = 0;

    function GetRelativeSize(a)
    {
        if (a <= 10)
        {
        a = a * 2;
        a = 140-a;
        return a;
        }
        if (10 < a <= 50)
        {
        a = 40 + a;
        a = 140-a;
        return a;
        }
        else
        {
        a = 40 + a * .8;
        a = 140-a;
        return a;
        }
    }

    /***** If I comment out this canvas work, the Validation below works. 
    If I don't, the canvase works but the Validation doesn't.   ******/
    var canvas = document.getElementById("registeredUsers");
    if (canvas.getContext){
        var ctx = canvas.getContext("2d");

        var img = new Image();
        img.onload = function() {
        ctx.drawImage(img, 0, 0);

        ctx.beginPath();
        ctx.moveTo(52, base);
        ctx.lineTo(52, GetRelativeSize(oneDay));
        ctx.lineTo(82, GetRelativeSize(oneDay));
        ctx.lineTo(82, base);

        ctx.moveTo(112, base);
        ctx.lineTo(112, GetRelativeSize(oneWeek));
        ctx.lineTo(142, GetRelativeSize(oneWeek));
        ctx.lineTo(142, base);

        ctx.moveTo(172, base);
        ctx.lineTo(172, GetRelativeSize(oneMonth));
        ctx.lineTo(202, GetRelativeSize(oneMonth));
        ctx.lineTo(202, base);

        ctx.fillStyle = "#00FF00";
        ctx.fill();
        ctx.stroke();
        }
        img.src = "/img/chart-background.png";
    };

  $('#started-raining').delay(16500).fadeOut('slow', function() {
    $('#finished-raining').fadeIn('slow');
    })

$(':input:visible:enabled:first').focus();

// validate signup form on keyup and submit
$("#signupForm").validate({
    rules: {
        firstname: {
            required: true,
            minlength: 3
        },
        tosagree: {
            required: true,
        },
        lastname: {
            required: true,
            minlength: 3
        },
        username: {
            required: true,
            minlength: 5
        },
        password: {
            required: true,
            minlength: 5
        },
        phonenumber: {
            required: true,
            minlength: 10
        },
        confirm_password: {
            required: true,
            minlength: 5,
            equalTo: "#password"
        },
        email: {
            required: true,
            email: true
        },
        topic: {
            required: "#newsletter:checked",
            minlength: 2
        },
        agree: "required"
    },
    messages: {
        firstname: {
            required: "Required",
            minlength: "3 Characters Minimum"
        },
        phonenumber: {
            required: "Required",
            minlength: "10 digit numbers only"
        },
        lastname: {
            required: "Required",
            minlength: "3 Characters Minimum"
        },
        tosagree: {
            required: "Resistance is futile",
        },
        username: {
            required: "Required",
            minlength: "5 Characters Minimum"
        },
        password: {
            required: "Please provide a password",
            minlength: "5 Characters Minimum"
        },
        confirm_password: {
            required: "Please provide a password",
            minlength: "5 Characters Minimum",
            equalTo: "Does not match"
        },
        email: "Invalid E-mail",
    }
})

// propose username by combining first- and lastname
$("#username").focus(function() {
    var firstname = $("#firstname").val();
    var lastname = $("#lastname").val();
    if(firstname && lastname && !this.value) {
        this.value = firstname + "." + lastname;
    }
    });
});
$(文档).ready(函数(){
var基数=141;
var-top=0;
函数GetRelativeSize(a)
{

如果(a有一件事很突出,这是错误的:

if (10 < a <= 50)

如果(10
if (10 < a <= 50)

if(10
除非将变量封装在函数中,否则在脚本之间或同一脚本中使用任何内容都不会有问题

请注意,如果在脚本中使用相同的变量名,这可能会导致变量冲突(同样,除非它们在函数中)


至于IDE,为什么不使用你的web浏览器和web检查器呢?如果你使用Firefox,下载一个名为firebug的插件。Chrome和我相信Safari都内置了检查器。web检查器是web开发的必备工具。它允许你查看DOM中的每一个元素、所有资源、脚本、cookie,它们还有一个控制台NSLE将为您提供语法、DOM异常和其他错误的错误输出。您还可以使用JSLint,这是一种非常挑剔的语法检查器。

JavaScript中的所有内容都是全局的,只有闭包在函数内部。因此,导入脚本将允许您访问这些scri中的变量、函数等临时秘书处

除非将变量封装在函数中,否则在脚本之间或同一脚本中使用任何内容都不会有问题

请注意,如果在脚本中使用相同的变量名,这可能会导致变量冲突(同样,除非它们在函数中)


至于IDE,为什么不使用你的web浏览器和web检查器呢?如果你使用Firefox,下载一个名为firebug的插件。Chrome和我相信Safari都内置了检查器。web检查器是web开发的必备工具。它允许你查看DOM中的每一个元素、所有资源、脚本、cookie,它们还有一个控制台NSLE将为语法、DOM异常和其他错误提供错误输出。您还可以使用JSLint,这是一种非常挑剔的语法检查器。

您的代码中带有逗号,这将停止某些浏览器

required: "Resistance is futile",  <-- trailing comma
email: "Invalid E-mail",  <-- trailing comma. 

如此干净和小巧!if/else if/else是您的朋友!

您在代码中拖尾逗号,这将阻止某些浏览器

required: "Resistance is futile",  <-- trailing comma
email: "Invalid E-mail",  <-- trailing comma. 


更干净更小!if/else if/else是你的朋友!

你检查过浏览器的错误控制台看它说了什么吗?是的,一定要把它们分割成单独的文件,firebug可以帮你处理语法。如果你把它们放到单独的.js文件中,带有Javascript插件的Eclipse IDE也可以帮你well@waitinforatrain甚至没有试想一下错误控制台。:(只是检查了一下,它说的唯一一件事是#signupForm不是函数(在#signupForm不存在的页面上),而且画布为空(在我没有打印画布的页面上).阅读这篇关于使用的文章W3Schools@epascarello读得好,我会记下我在那里读到的一些东西,尽管指南上说还有其他资源,但要记住一个“有信誉的”要困难得多每种技术或语言的站点。您是否检查过浏览器的错误控制台以查看其内容?是的,一定要将它们拆分为单独的文件,然后firebug可以帮助您处理语法。如果您将它们放在单独的.js文件中,带有Javascript插件的Eclipse IDE也可以提供帮助well@waitinforatrain甚至都没有想到一个错误控制台。:(只是检查了一下,它说的唯一一件事是#signupForm不是函数(在#signupForm不存在的页面上),而且画布为空(在我没有打印画布的页面上).阅读这篇关于使用的文章W3Schools@epascarello好的阅读,我会注意到我读到的一些东西,虽然指南中提到了其他资源,但是要记住每一个技术或语言都有一个“有信誉的”网站,这是很难的。谢谢。我已经习惯了C++。检查丢失的分号。C++也解释了同样的结果……JavaScript也有自动分号,所以<代码> var A=10 < /COD>运行,并执行与<代码> var B=20;< /C> >。强烈建议不要忽略分号,但是,通常会在两个角的情况下结束,Jayor真的吗?我确信我已经评估过了。条件表达式(10×x<20)可能是在数学类中的。哈哈。关于隐式分号的好点,我忘了。谢谢。我习惯C++ C++。
function GetRelativeSize(a){
    if (a <= 10){
        var b = a * 2;
    }
    else if (a <= 50){
        b = 40 + a;
    }
    else{
        b = 40 + a * .8;
    }
    return 140 - b;
}