【发布时间】:2019-08-01 07:33:27
【问题描述】:
这是一个很奇怪的问题。
我有一个接受姓名/地址信息的网页。我想在输入的状态和输入的邮政编码之间进行交叉检查。我在这个站点上找到了一个 JS 脚本,它将从邮政编码返回状态:How can I quickly determine the State for a given zipcode? 我不会复制它,因为它很长。此代码没有报告问题。
因为它是 JS,所以我将该代码复制/粘贴到一个名为 zipstate.js 的文件中,并在我的脚本部分(位于 html 页面的末尾)中添加了以下行
<script src=”zipstate.js”></script>
我在这里调用该函数:
//cross check the zip to the state in case of typos
$zip1 = strval($zip); //make sure it's a string – could use (string) but same results
$state1 = getState($zip1); //this is where the error occurs
if ($state != $state1 ) { //never get here because of the error – and I don’t care about strict matching
$error_message .= 'The ZIP code does not belong to the entered state.<br/>';
}
当点击那段代码时,我得到一个错误: 致命错误:未捕获的错误:调用 [path] 中未定义的函数 getState() 堆栈跟踪:#0 {main} 在第 256 行的 [path] 中抛出
这是该函数调用的位置。
我确保函数的名称与我调用的名称相匹配。我移动了那个脚本定义,把它放在section中,把它放在顶部附近,实际上将代码嵌入到主文件中,将其定义为:
<script>
[copied code]
</script>
那没用。我将它从脚本中取出并作为 php.ini 内联。不——这引发了其他错误。
我比较了这个文件的格式和工作的 JS 脚本,我没有发现任何明显的缺陷。
我定义了其他 JS 和 PHP 函数,它们可以像宣传的那样工作。
奇怪的是,当我打开开发者面板时,我在控制台下没有看到任何错误,在源下我看到了文件,并且扫描源,我没有看到任何错误。奇怪。
我在这个网站上搜索过类似的错误,但它们似乎都与贬值的函数有关,或者使用 MYSQL 调用而不是 MYSQLi。该脚本使用关键字“typeof”,我认为它没有被贬值或删除。
那么,朋友们,我做错了什么?我错过了什么?
这是一个有趣但耗时的副项目,而且我遇到的许多问题都通过在社区中四处游荡而得到解决。我学到了很多东西。这一次,我不在我的联盟中,虽然这可能有一个非常简单的解决方案,但它超出了我的范围。我在这方面花了太多时间,我想我可以使用一些帮助。
感谢您的回复。
【问题讨论】:
-
<script src=”zipstate.js”></script>尽量避免在编程中使用大引号,它们会破坏很多东西。 -
您是否尝试从 PHP 调用该函数?因为从 PHP 调用 JS 函数是行不通的。
-
@CertainPerformance - 大引号是我用来创建 OP 的文字处理程序的产物。我使用 HTML-KIT 编写 webcode,所以那里真的没有花引号。
-
@Chipster - 我认为你一针见血!是的,这正是我正在做的。这是即时学习而不是参加课程的问题(而且,在我很高的年龄,这样做真的没有意义)。该例程很容易转换为 PHP 函数 - 使用“is_string”而不是“typeof”并使所有内部变量符合 PHP 要求。非常感谢!
-
您应该确保您发布的代码完全代表您实际拥有的代码,否则您很可能会得到无用的反馈。
标签: javascript