V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
CR7sun
V2EX  ›  JavaScript

为何我用 js 调用 PHP 某个函数的返回值在 HTML 上显示老是出错?

  •  
  •   CR7sun · 2020-02-10 13:46:25 +08:00 · 3521 次点击
    这是一个创建于 1530 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PHP 代码:

    <?php
    function form_getresultnum($formid) {
        $count = DB::result_first("SELECT count FROM ".DB::table('form_item_count')." WHERE formid='$formid'");
        return $count;
    }
    echo form_getresultnum(2);
    ?>
    

    html 代码:

    <p id="p1"></p>
    
    window.onload = function s(){$("#p1").load("/i/template/form/source/function/function_form.php");}
    

    为什么老是显示 Uncaught TypeError: Cannot read property 'load' of null at s ? 怎么都获取不到这个值呢?有没有大佬指导一下啊。

    24 条回复    2020-02-11 11:10:03 +08:00
    stabc
        1
    stabc  
       2020-02-10 13:48:47 +08:00
    jquery 载入了么
    jugelizi
        2
    jugelizi  
       2020-02-10 13:51:28 +08:00
    看下 jquery 如何引入使用的文档 A
    CR7sun
        3
    CR7sun  
    OP
       2020-02-10 13:54:31 +08:00
    @stabc 载入了
    CR7sun
        4
    CR7sun  
    OP
       2020-02-10 14:03:23 +08:00
    @jugelizi 我引入 jquery 了还是不行啊
    exploreXin
        5
    exploreXin  
       2020-02-10 14:08:31 +08:00
    后端用的什么框架,打印下 $count 的值,看看变量类型是什么。
    php01
        6
    php01  
       2020-02-10 14:18:03 +08:00
    这个不关 php 的事哈
    jugelizi
        7
    jugelizi  
       2020-02-10 14:22:20 +08:00
    @CR7sun

    为啥就不喜欢看文档 很清楚的

    $(document).ready(function(){
    //$("p").click(function(){
    // $(this).hide();
    // });
    });
    eason1874
        8
    eason1874  
       2020-02-10 14:33:34 +08:00   ❤️ 1
    学会并保持阅读报错信息的能力。
    Uncaught TypeError: Cannot read property 'load' of null at s
    这话意思是在 s 找不到 load 属性
    因为 window.onload = function s() 多了个 s,直接 function () 就对了
    但一般不这样赋值,这样只能赋值一次,容易覆盖其他的,也容易被其他的赋值。

    既然用了 jQuery 那就像楼上那样 $(document).ready(function(){})
    没 jQuery 就用 window.addEventListener('load', function(){})
    eason1874
        9
    eason1874  
       2020-02-10 14:37:01 +08:00
    @eason1874 #8 想了想。不对,说错了,应该是 $("#p1") 的 load 找不到,不关那个函数名的事。
    troycode
        10
    troycode  
       2020-02-10 15:18:54 +08:00
    $(document).ready(function(){})
    justfindu
        11
    justfindu  
       2020-02-10 15:28:21 +08:00
    你没有 $("#p") 这是一个 null, 而且这个你需要使用 $("#p")[0]
    ysc3839
        12
    ysc3839  
       2020-02-10 17:43:25 +08:00 via Android
    在 js 的 $("#p1") 前面加个 debugger; 然后打开开发者工具刷新页面,中断后控制台看看 p1 元素是否存在。
    Kokororin
        13
    Kokororin  
       2020-02-10 18:54:01 +08:00   ❤️ 1
    应该是 jQuery 没有载入成功,此时的$=document.querySelector,jQuery 的$()永远不会返回 null,所以楼上有些说法是不正确的=w=
    xxbutoo
        14
    xxbutoo  
       2020-02-10 19:15:00 +08:00
    为何 phper 总是提问这种问题 ??
    masker
        15
    masker  
       2020-02-10 19:24:58 +08:00 via Android
    @xxbutoo 为什么总有人以为自己很优越很屌?
    xxbutoo
        16
    xxbutoo  
       2020-02-10 19:34:57 +08:00
    @masker 为什么总有人喜欢盲人摸象?
    jinliming2
        17
    jinliming2  
       2020-02-10 19:47:23 +08:00 via iPhone
    js 代码要放在 <p id="p1"></p> 的后面
    jinliming2
        18
    jinliming2  
       2020-02-10 19:55:09 +08:00 via iPhone
    @Kokororin jQuery 没载入的话,$ 是 undefined 哦!
    $=document.querySelector 只是 DevTools 下的一个“语法糖”,即便是在 DevTools 里 createElement 创建的 script 标签也会继承这个语法糖。
    但是如果是网页中本身就有的 script 标签,默认是没有 $ 定义的!
    xy90321
        19
    xy90321  
       2020-02-10 20:22:36 +08:00 via iPhone
    $ 别名被覆盖
    t2doo
        20
    t2doo  
       2020-02-10 20:49:23 +08:00
    php 代码是 Discuz 的写法吗
    ysc3839
        21
    ysc3839  
       2020-02-11 04:20:47 +08:00 via Android
    @jinliming2 这样的话,意思是 jQuery 会返回 null ?
    alinwu05
        22
    alinwu05  
       2020-02-11 09:19:19 +08:00
    Load 的是 URL 不是文件呀
    tara001
        23
    tara001  
       2020-02-11 09:51:04 +08:00
    php 代码不能直接通过文件加载执行, 一般通过 http 请求执行或者 cli 命令行执行
    YoRolling
        24
    YoRolling  
       2020-02-11 11:10:03 +08:00
    你确定 jQuery 的 ajax 是这么用的吗? 难道不是 $.load(url) 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5201 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:22 · PVG 16:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.