Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
Javascript 未定义的返回值_Javascript_Php - Fatal编程技术网

Javascript 未定义的返回值

Javascript 未定义的返回值,javascript,php,Javascript,Php,我想使用JS和PHP(没有jquery或ajax)从MySQL数据库获取数据 但我一直得到“未定义的返回值错误” 这是我第一次用JS和PHP编程 url: "../PHP/Kassensystem.php?productname="+productname JS: PHP: 在您的open方法中,您已将第三个参数设置为true,因此您的请求.send将异步执行。与所有异步JavaScript一样,当代码执行达到返回产品时,产品仍然是未定义的,因此会出现错误 您可以将第三个参数设置为false,

我想使用JS和PHP(没有jquery或ajax)从MySQL数据库获取数据 但我一直得到“未定义的返回值错误”

这是我第一次用JS和PHP编程

url: "../PHP/Kassensystem.php?productname="+productname
JS:

PHP:


在您的
open
方法中,您已将第三个参数设置为
true
,因此您的
请求.send
将异步执行。与所有异步JavaScript一样,当代码执行达到返回产品时,产品仍然是未定义的,因此会出现错误

您可以将第三个参数设置为
false
,使其同步,您的代码将正常工作(至少到目前为止在firefox中正常工作):

但是,不推荐使用同步选项。从

主线程上的同步请求很容易破坏用户体验,应该避免;事实上,许多浏览器完全不赞成在主线程上支持同步XHR。工作进程中允许同步请求

至于异步工作,您必须在调用
onload
方法时使用:

request.onload = function () {
  if (request.status == 200) {
    product = request.responseText;
    console.log(product) // consume here
  }
};

您还可以使用
Promise
,也可以选择使用
async/await
。有关异步代码的更多信息。

在您的
open
方法中,您已将第3个参数设置为
true
,因此您的
请求.send
将异步执行。与所有异步JavaScript一样,当代码执行达到返回产品时,产品仍然是未定义的,因此会出现错误

您可以将第三个参数设置为
false
,使其同步,您的代码将正常工作(至少到目前为止在firefox中正常工作):

但是,不推荐使用同步选项。从

主线程上的同步请求很容易破坏用户体验,应该避免;事实上,许多浏览器完全不赞成在主线程上支持同步XHR。工作进程中允许同步请求

至于异步工作,您必须在调用
onload
方法时使用:

request.onload = function () {
  if (request.status == 200) {
    product = request.responseText;
    console.log(product) // consume here
  }
};

您还可以使用
Promise
,也可以选择使用
async/await
。异步代码的更多功能。

您的代码容易受到SQL注入攻击-使用参数化语句保护数据。旁注:“没有jquery或ajax”-您仍然在使用ajax。这就是您使用的
new XMLHttpRequest()
的目的。在您的问题中,千万不要将[javascript]和[mysql]结合起来。这是两个完全不同的领域,永远不会相遇。因此,要么是[php]和[mysql],要么是[javascript]和[php],问题很可能是您有
return$json\u数组
while您应该使用:
echo$json\u数组输出数据。在这个上下文中使用
return
实际上不会做任何事情。@MagnusEriksson哦,这是一个编辑错误,好的,我将尝试使用echo。。。不起作用:/您的代码容易受到SQL注入攻击-使用参数化语句保护数据。旁注:“没有jquery或ajax”-您仍然在使用ajax。这就是您使用的
new XMLHttpRequest()
的目的。在您的问题中,千万不要将[javascript]和[mysql]结合起来。这是两个完全不同的领域,永远不会相遇。因此,要么是[php]和[mysql],要么是[javascript]和[php],问题很可能是您有
return$json\u数组
while您应该使用:
echo$json\u数组输出数据。在这个上下文中使用
return
实际上不会做任何事情。@MagnusEriksson哦,这是一个编辑错误,好的,我将尝试使用echo。。。不起作用:/
request.open("GET", url, false);
request.onload = function () {
  if (request.status == 200) {
    product = request.responseText;
    console.log(product) // consume here
  }
};