首页   注册   登录
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 · 57 天前 · 1490 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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   57 天前
    jquery 载入了么
    jugelizi
        2
    jugelizi   57 天前
    看下 jquery 如何引入使用的文档 A
    CR7sun
        3
    CR7sun   57 天前
    @stabc 载入了
    CR7sun
        4
    CR7sun   57 天前
    @jugelizi 我引入 jquery 了还是不行啊
    exploreXin
        5
    exploreXin   57 天前
    后端用的什么框架,打印下 $count 的值,看看变量类型是什么。
    php01
        6
    php01   57 天前
    这个不关 php 的事哈
    jugelizi
        7
    jugelizi   57 天前
    @CR7sun

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

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