PHP提交表单问题
我四处寻找修复方法,但似乎没有一个有效。 我有一个条形码扫描器,它输入条形码,然后单击文本框上的enter,然后我希望表单返回PHP函数的结果,但它不想这样做 HTMLPHP提交表单问题,php,html,Php,Html,我四处寻找修复方法,但似乎没有一个有效。 我有一个条形码扫描器,它输入条形码,然后单击文本框上的enter,然后我希望表单返回PHP函数的结果,但它不想这样做 HTML PHP 我将所有代码都放在同一个文件中。请注意,表单中的名称与php代码中的名称不同。 在php中搜索$\u GET[barcodeid]的值: $barcode = $_GET['barcodeid']; 在html中有name=barcode <input type="text" placeholder="s
PHP
我将所有代码都放在同一个文件中。请注意,表单中的名称与php代码中的名称不同。 在php中搜索
$\u GET[barcodeid]
的值:
$barcode = $_GET['barcodeid'];
在html中有name=barcode
<input type="text" placeholder="scan barcode" name="barcoded" onkeydown="getproduct()">
还缺少检查是否设置了$\u GET['barcodeid']
另外,在输入字段中,您调用的是JS函数
getproduct()
,而不是php函数使用php有什么特殊原因吗?
您可以只使用一个javascript函数来执行您需要执行的操作。这也意味着你不需要服务器
如果您需要使用PHP,因为您还想做其他一些用javascript无法轻松完成的事情,或者需要将游戏分发给查看源代码的人,那么您应该使用通用的“post”功能
如果您选择第二条路径,那么您可以在PHP中检查$_POST[“barcoded”],并根据需要进行回显
请访问以获取帮助。PHP是服务器端脚本,而JavaScript是客户端脚本。当您使用
onkeydown=“getproduct()”
时,页面认为您正在调用JavaScript函数getproduct()
。相反,如果要调用php函数,请将表单提交到.php
页面,并在那里使用该函数
<form action="function.php" method="get">
<input type="text" placeholder="scan barcode" name="barcoded" onkeydown="getproduct()">
</form>
function.php:
<?php
$matchedproducts = [
'534513' => "iSmoka Eleaf iKiss Mini",
'798154' => "iSmoka Eleaf iStick 20W",
'223701' => "iSmoka Eleaf iStick 50W",
'811693' => "iSmoka Eleaf i118",
'796026' => "E-Liquid"
];
// Changed to barcoded, instead of barcodeid
$barcode = $_GET['barcoded'];
$productfound = FALSE;
foreach ($matchedproducts as $id => $product) {
if ($barcode == array_search($barcode, $matchedproducts[$id])) {
$productfound = TRUE;
echo $matchedproducts[$product];
} else {
$productfound = FALSE;
echo "No product";
}
}
?>
php是服务器端。Javascript在客户端。不能那样调用getproduct()。您需要先提交表单,然后php才能对数据执行任何操作。您似乎从错误的位置调用了getproduct()(一个php函数)。我假设您希望在onkeyup事件中从服务器检索数据。您应该熟悉AJAX。为什么不使用数据库调用来查找产品?这是正确的,但在提交表单之前它不会有帮助!是的,但他没有提交按钮,所以基本上这段代码缺少很多东西
<form action="function.php" method="get">
<input type="text" placeholder="scan barcode" name="barcoded" onkeydown="getproduct()">
</form>
<?php
$matchedproducts = [
'534513' => "iSmoka Eleaf iKiss Mini",
'798154' => "iSmoka Eleaf iStick 20W",
'223701' => "iSmoka Eleaf iStick 50W",
'811693' => "iSmoka Eleaf i118",
'796026' => "E-Liquid"
];
// Changed to barcoded, instead of barcodeid
$barcode = $_GET['barcoded'];
$productfound = FALSE;
foreach ($matchedproducts as $id => $product) {
if ($barcode == array_search($barcode, $matchedproducts[$id])) {
$productfound = TRUE;
echo $matchedproducts[$product];
} else {
$productfound = FALSE;
echo "No product";
}
}
?>