Vyhledávací formulář s „nápovědníkem“ a specialní znaky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wallkysek
Člen | 52
+
0
-

Zdravím, vím že se to zřejmě netýká ani nette, ale spíš php jako takového. I tak doufám že mi poradíte. Píšu vyhledávací komponentu, vyhledávám výskyt jednotlivých slov:

foreach($data as $word){
                $tempdata = preg_grep("/$word/i", $tempdata);

            }

jenže když dám hledat např.: Barum 245/50, tak se požadavek(ajax) odešle, jenže nic se nestane, výstup(nápovědník) zůstane takový jaký byl před 245/50, pokud zadám čístě jen řetězec 245/50, tak se také nic nenalezne. Někdo nějaký nápad? Děkuji

David Matějka
Moderator | 6445
+
0
-

zkus

$word = preg_quote($word, '/');
vitush93
Člen | 33
+
0
-

wallkysek napsal(a):

Zdravím, vím že se to zřejmě netýká ani nette, ale spíš php jako takového. I tak doufám že mi poradíte. Píšu vyhledávací komponentu, vyhledávám výskyt jednotlivých slov:

foreach($data as $word){
                $tempdata = preg_grep("/$word/i", $tempdata);

            }

jenže když dám hledat např.: Barum 245/50, tak se požadavek(ajax) odešle, jenže nic se nestane, výstup(nápovědník) zůstane takový jaký byl před 245/50, pokud zadám čístě jen řetězec 245/50, tak se také nic nenalezne. Někdo nějaký nápad? Děkuji

nebylo by jednodušší použí jquery autocomplete? Prohledávaná data buď hardcodneš do js nebo sypeš z db v JSON formátu. Jestli teda nejsem mimo s tím co vlastně potřebuješ..

wallkysek
Člen | 52
+
0
-

matej21 napsal(a):

zkus

$word = preg_quote($word, '/');

Děkuji, pomohlo

wallkysek
Člen | 52
+
0
-

vitush93 napsal(a):

wallkysek napsal(a):

Zdravím, vím že se to zřejmě netýká ani nette, ale spíš php jako takového. I tak doufám že mi poradíte. Píšu vyhledávací komponentu, vyhledávám výskyt jednotlivých slov:

foreach($data as $word){
                $tempdata = preg_grep("/$word/i", $tempdata);

            }

jenže když dám hledat např.: Barum 245/50, tak se požadavek(ajax) odešle, jenže nic se nestane, výstup(nápovědník) zůstane takový jaký byl před 245/50, pokud zadám čístě jen řetězec 245/50, tak se také nic nenalezne. Někdo nějaký nápad? Děkuji

nebylo by jednodušší použí jquery autocomplete? Prohledávaná data buď hardcodneš do js nebo sypeš z db v JSON formátu. Jestli teda nejsem mimo s tím co vlastně potřebuješ..

ale já používám autocomplete, doufám tedy že né špatně :D

var select_name = "GoogleSearch";
	$("#google").autocomplete({
		source: function( request, response ) {
			$.ajax({
				url: "{!$presenter->link('autocomplete')}",
				data: {
					whichData: select_name,
					typedText: request.term
				},
				success: function( data ) {
					response( $.map( data, function( item ) {
						return { label: item, value: item }
					}));
				}
			});
		},
		minLength: 2,
		open: function() {
			$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
		},
		close: function() {
			$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
		}
	});

takto to mám v JS a potom v homepage presenteru → renderAutocomplete(…, …){}