我可以有多个具有不同键、相同值的 $_GET 吗?
Can I have multiple $_GET with the different key, same values?
我已经在互联网上搜索但没有得到实际的解决方案。我发现的是“multiple $_GET with the same key, different values?”但我想知道如何设置具有相同值的不同键,如 ?t= helloWorld&?q=helloWorld,我知道这是可能的,但我不知道实现它的过程。任何人都可以帮助我。?
那么,我的问题是
我想使用 www.omdbapi.com API and Google CSE together where omdb needs key '?t=' and Google CSE need '?q=' I have implemented both on www.moviesnight.club 但它不起作用,因为我无法为键 '?q=' 复制键 '?t=' 的值。
解决方案一:
您应该将参数的值存储在一个变量中,并检查哪个键在 $_GET
:
中可用
$queryValue = '';
// Fetch parameter for omdbapi
if(isset($_GET['t'])) {
$queryValue = $_GET['t'];
}
// Fetch parameter for Google CSE
if(isset($_GET['g'])) {
$queryValue = $_GET['g'];
}
// Optional:
if(empty($queryValue)) {
die('No parameter given.');
}
// Use the value stored in $queryValue
解决方案 2:(如果您无法使用像 $queryValue
这样的变量)
$_GET['g'] = isset($_GET['g']) ? : $_GET['t'];
$_GET['t'] = isset($_GET['t']) ? : $_GET['g'];
我没有找到任何仅使用 PHP 的解决方案,因此 JavaScript 帮助我完成了它。检查以下片段。
JavaScript
function changeText(containerId) {
var datatext = document.getElementById('omdbBox').value;
var collection = document.getElementById(containerId).getElementsByTagName('INPUT');
for (var x = 0; x < collection.length; x++) {
if (collection[x].type.toUpperCase() == 'TEXT') collection[x].value = datatext;
}
}
CSS
#cseBox {display: none;}
PHP(要打印提交的URL,使用的时候可以不用这个php代码,它仅用于测试目的。它将确保代码正常工作。)
<?php
if(isset($_GET['search'])){
echo 'http://moviesnight.club/?<b>t='.$_GET['t'].'&q='.$_GET['q'].'</b>&search=';
}
?>
HTML
<form method="get">
<input id="omdbBox" type="text" autocomplete="off" name="t" onkeyup="changeText('cseBox')">
<div id="cseBox">
<input type="text" name="q">
</div>
<input type="submit" name="search">
</form>
同时查看直播PhpFiddle
我已经在互联网上搜索但没有得到实际的解决方案。我发现的是“multiple $_GET with the same key, different values?”但我想知道如何设置具有相同值的不同键,如 ?t= helloWorld&?q=helloWorld,我知道这是可能的,但我不知道实现它的过程。任何人都可以帮助我。?
那么,我的问题是 我想使用 www.omdbapi.com API and Google CSE together where omdb needs key '?t=' and Google CSE need '?q=' I have implemented both on www.moviesnight.club 但它不起作用,因为我无法为键 '?q=' 复制键 '?t=' 的值。
解决方案一:
您应该将参数的值存储在一个变量中,并检查哪个键在 $_GET
:
$queryValue = '';
// Fetch parameter for omdbapi
if(isset($_GET['t'])) {
$queryValue = $_GET['t'];
}
// Fetch parameter for Google CSE
if(isset($_GET['g'])) {
$queryValue = $_GET['g'];
}
// Optional:
if(empty($queryValue)) {
die('No parameter given.');
}
// Use the value stored in $queryValue
解决方案 2:(如果您无法使用像 $queryValue
这样的变量)
$_GET['g'] = isset($_GET['g']) ? : $_GET['t'];
$_GET['t'] = isset($_GET['t']) ? : $_GET['g'];
我没有找到任何仅使用 PHP 的解决方案,因此 JavaScript 帮助我完成了它。检查以下片段。
JavaScript
function changeText(containerId) {
var datatext = document.getElementById('omdbBox').value;
var collection = document.getElementById(containerId).getElementsByTagName('INPUT');
for (var x = 0; x < collection.length; x++) {
if (collection[x].type.toUpperCase() == 'TEXT') collection[x].value = datatext;
}
}
CSS
#cseBox {display: none;}
PHP(要打印提交的URL,使用的时候可以不用这个php代码,它仅用于测试目的。它将确保代码正常工作。)
<?php
if(isset($_GET['search'])){
echo 'http://moviesnight.club/?<b>t='.$_GET['t'].'&q='.$_GET['q'].'</b>&search=';
}
?>
HTML
<form method="get">
<input id="omdbBox" type="text" autocomplete="off" name="t" onkeyup="changeText('cseBox')">
<div id="cseBox">
<input type="text" name="q">
</div>
<input type="submit" name="search">
</form>
同时查看直播PhpFiddle