HTML - ids busqueda de google simultáneos

 
Vista:

ids busqueda de google simultáneos

Publicado por Miguel (1 intervención) el 11/07/2024 11:12:41
Hola, comienzo diciendo que tengo 0 experiencia con esto, y estoy empezando. Disculpadme. Estoy implementando un sencillo script para que me devuelva, utilizando los ids de la búsqueda programable de google una busqueda u otra en función del fabricante y un tipo seleccionado,
Hay dos listas desplegables primero, con el fabricante, y en función del elegido se despliega la siguiente con sus tipos.
si se elige el fabricante A, ofrece una busqueda con un ID marcado, si se selecciona el fabricante B ofrece otra busqueda pero esta es doble con dos IDs, y una de ellas lo traduce al aleman antes de la busqueda para hacerla en aleman...
Aunque con el A funciona bastante bien, con el B muchas veces me salen las mismas busquedas, sin utilizar los dos IDs indicados, y si le sigo dando al boton de search, va cambiando los resutlados, a veces todo en español, otras veces todo en aleman, y otras sale bien en aleman y español que es lo que me interesa. os paso el código, por si me podéis echar una mano a identificar el problema,
Muchas gracias,

<div class="search-container">
<label for="fabricante">Fabricante</label>
<select id="fabricante" name="fabricante" onchange="populateTipos()">
<option value="">Select Fabricante</option>
<option value="B">B</option>
<option value="A ">A </option>
</select>
</div>

<div class="search-container">
<label for="tipo">Tipo</label>
<select id="tipo" name="tipo">
<option value="">Select Tipo</option>
</select>
</div>

<div class="search-container">
<label for="extraText">Additional Text</label>
<input type="text" id="extraText" placeholder="Enter additional text" onkeypress="checkEnter(event)" />
</div>

<div class="search-container">
<button onclick="performSearch()">Search</button>
</div>

<div class="search-results-container">
<div class="search-results-column">
<div class="gcse-searchresults" id="searchresults1"></div>
</div>
<div class="search-results-column">
<div class="gcse-searchresults" id="searchresults2"></div>
</div>
</div>

<script>
var tipos = {
B: ["1", "2", "3"],
'A': ["4", "5", "6"]
};

var cseIds = {
'A': 'd1c505ecb5da14bXX',
B: {
spanish: 'a518d8db7c8334eYY',
german: '342daa766f4b74aZZ'
}
};

function populateTipos() {
var fabricanteSelect = document.getElementById('fabricante');
var tipoSelect = document.getElementById('tipo');
var selectedFabricante = fabricanteSelect.value;

tipoSelect.innerHTML = '<option value="">Select Tipo</option>';

if (selectedFabricante) {
tipos[selectedFabricante].forEach(function(tipo) {
var option = document.createElement('option');
option.value = tipo;
option.textContent = tipo;
tipoSelect.appendChild(option);
});
}
}

function loadGoogleCSE(cx, divId, query, gname) {
var gcseScript = document.createElement('script');
gcseScript.type = 'text/javascript';
gcseScript.async = true;
gcseScript.src = 'https://cse.google.com/cse.js?cx=' + cx;

gcseScript.onload = function() {
google.search.cse.element.render({
div: divId,
tag: 'searchresults-only',
gname: gname // Unique identifier for the search engine
});

google.search.cse.element.getElement(gname).execute(query);
};

var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcseScript, s);
}

function performSearch() {
var fabricante = document.getElementById('fabricante').value;
var tipo = document.getElementById('tipo').value;
var extraText = document.getElementById('extraText').value;

if (fabricante) {
var searchResultsElement1 = document.getElementById('searchresults1');
var searchResultsElement2 = document.getElementById('searchresults2');

searchResultsElement1.innerHTML = ''; // Clear previous results
searchResultsElement2.innerHTML = ''; // Clear previous results

var query1 = fabricante + " " + tipo + " " + extraText;

if (fabricante === 'B') {
loadGoogleCSE(cseIds.B.spanish, 'searchresults1', query1, 'B_spanish');

var query2 = fabricante + " " + tipo + " " + translateToGerman(extraText);
loadGoogleCSE(cseIds.B.german, 'searchresults2', query2, 'B_german');
} else {
loadGoogleCSE(cseIds[fabricante], 'searchresults1', query1, 'A');
searchResultsElement2.innerHTML = ''; // Clear second column for A
}
}
}

function translateToGerman(text) {
// De momento, devolvemos el texto original
return text;
}

function checkEnter(event) {
if (event.key === 'Enter') {
performSearch(); // Perform search on Enter key press
}
}
</script>

</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder