Anonymní profil stirl021 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil stirl021 – Programujte.comAnonymní profil stirl021 – Programujte.com

 

Příspěvky odeslané z IP adresy 109.164.76.–

Stirl
PHP › Stažení obsahu doplněné na s…
29. 8. 2016   #212488

#4 peter
Jde o crawler ve finančních zprávách. Na stránce jsou odkazy na x článků na tom serveru a mám robota, který mi hledá specifické informace. Doteď jsem všechno ručně rozklikal a vypsal ručně. Teď už je dat moc a chtěl bych to nějak zautomatizovat. Data sbírám pro svoji potřebu.

Ad 1 a 2. Asi jsem se špatně vyjádřil. Když napřed zobrazím stránku a z odkazu vytahám parametry a otevřu odkaz v nové záložce prohlížeče, tak se mi zobrazí. Když ale dám stejnou adresu jako parametr do file_get_contents, tak se zobrazí chybová hláška.

Crawler je jedna z možností - ta rychlejší. Druhá možnost je např. nějaký doplněk prohlížeče, který ty odkazy pootvírá na stránce. Tady jsem zatím nehledal.

Stirl
PHP › Stažení obsahu doplněné na s…
29. 8. 2016   #212486

#2 peter
Kliknutím na odkaz se předávají parametry javascriptové funkci AJAX requestu, která vygeneruje adresu a vyžádá si výsledek. Když parametry z odkazu přidám do adresy ručně, tak článek v pohodě otevřu v nové záložce prohlížeče.

Úvodní stránku si zobrazit musím, aby se vygenerovala session, pokud tomu správně rozumím. To problém není. Stránku otevřu, ale chci se vyhnout rozklikávání 300 linků.

stirl021
JavaScript, AJAX, jQuery › Neočekávané chování při stis…
23. 8. 2015   #204506

#1 stirl021
Vyřešeno http://jsfiddle.net/stirl021/m5an8gn7/

Šlo o konflikt keyup a keydown.

stirl021
JavaScript, AJAX, jQuery › Neočekávané chování při stis…
18. 8. 2015   #204400

#2 Matěj Andrle
S počítáním chyb máš pravdu, pokud by šlo o soutěž. Pro mě skript slouží jako výukový software, proto chci, aby při špatné klávese uživatele zastavil proto, aby si uvědomil chybu a opravil ji. Hashtable neznám, nastuduju a vyzkouším. Díky

stirl021
JavaScript, AJAX, jQuery › Neočekávané chování při stis…
17. 8. 2015   #204380

Mám jednoduchá skript pro nácvik psaní všemi deseti, viz http://jsfiddle.net/stirl021/m5an8gn7/4/

Pokud uživatel při psaní udělá chybu, zobrazí se znak, který má správně stisknout. Po opravě (tzn. stiskne klávesu se znakem, ve kterém udělal chybu), znak zmizí a pokračuje v psaní. Problém je, že když se při opravě stisknou dvě chybné klávesy současně (nebo velmi rychle po sobě), zobrazený chybný znak zmizí, přitom by měl na obrazovce zůstat, protože nebyla zmáčknuta správná klávesa.

Např. text k přepisu je "zkouška psaní". Uživatel napíše "zkou" a pak udělá chybu a stiskne "č" (správně má být "š" ). Zobrazí se tedy písmeno "š". Teď uživatel stiskne dvě jiné špatné dvě klávesy a písmeno "š" zmizí. Přitom by mělo na obrazovce zůstat, protože nebyla zmáčknuta správná klávesa ("š").

Nedaří se mi zjistit, čím to je. 

Díky za nápady.

stirl021
JavaScript, AJAX, jQuery › Jak updatovat obsah elementu
26. 1. 2015   #198420

Vytvářím jednoduchý kvíz v JavaScriptu.

 index.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Quiz</title>

</head>
<body>
	
<h1>Chcete být milionářem</h1>

<script src="script2.js"></script>

<script>
createTemplate();
askQuestion();
</script>	
</body>
</html>

script2.js

var div;
var questionBox;
var choicesBox;
var buttonNext;
var scoreBox;
var questionNumber = 0;


questionBox = document.createElement('h3');
questionBox.setAttribute('id', 'questionbox')
choicesBox = document.createElement('form');
buttonNext = document.createElement('button');
scoreBox = document.createElement('p');

function createTemplate() {

	div = document.createElement('div');
	document.body.appendChild(div);
	div.appendChild(questionBox);
	div.appendChild(choicesBox);
	div.appendChild(buttonNext);
	div.appendChild(scoreBox);
}

function askQuestion() {
		
	appendQuestion();
	appendChoices();
	appendButtonNext();
}

function appendQuestion() {

	var text = document.createTextNode(questionList[questionNumber].question);
	var question = document.getElementById('questionbox');
	return question.appendChild(text);
}

function appendChoices() {
	
	for (var choice in questionList[questionNumber].choices) {
		
		var label = document.createElement('label');
		label.setAttribute('for', choice);

		var text = document.createTextNode(questionList[questionNumber].choices[choice]);
		label.appendChild(text);
		choicesBox.appendChild(label);
		
		var input = document.createElement('input');
		input.setAttribute('type', 'radio');
		input.setAttribute('id', choice);
		input.setAttribute('name', 'choice');
		
		choicesBox.appendChild(input);
	}

}

function appendButtonNext() {
	var text = document.createTextNode('Next question');
	buttonNext.setAttribute('onclick', 'nextQuestion();');
	buttonNext.appendChild(text);
}

function nextQuestion() {
	
	questionNumber++;
	removeContentBox();
	createTemplate();
	askQuestion();
}

function removeContentBox() {
	
	div.remove();
}


var questionList = [
{
question: "Kdo je premiérem Velké Británie?", 
choices: ["Tony Blair", "Gordon Brown", "Winston Churchill", "David Cameron"], 
correctAnswer:3,
},

{
question: "Jaká je nejdelší řeka světa?",
choices: ["Amazonka", "Rýn", "Nil", "Mississippi",] ,
correctAnswer: 0,
},

{
question: "Kdo je autorem Linuxu?",
choices: ["Bill Gates", "Linus Torvalds", "Liam Neeson", "Steve Jobs",] ,
correctAnswer: 1,
},

{
question: "Kolik kusů je tucet?",
choices: ["6", "12", "24", "48",] ,
correctAnswer: 1,
},

{
question: "Z čeho jsou žlučové kameny?",
choices: ["z hemoglobinu", "ze žluči", "z cholesterolu", "z vápníku",] ,
correctAnswer: 2,
},

{
question: "Jak se jmenuje předloha stavebnice Igráček?",
choices: ["Igláček", "Playmobil", "Juguete", "Malčik",] ,
correctAnswer: 1,
},

]

Klikem na button se napřed DIV s otázkou odstraní, pak by se měla vytvořit nová kostra DIVu funkcí createTemplate() a do ní by se měl připnout obsah nové otázky.

Místo toho se nová otázka přidává na tu předchozí, viz elementy h3 a form.

<html lang="en"><head>
	<meta charset="UTF-8">
	<title>Quiz</title>

</head>
<body>
	
<h1>Chcete být milionářem</h1>


<script src="script2.js"></script>
<script>
createTemplate();
askQuestion();
</script>	

<div><h3 id="questionbox">Kdo je premiérem Velké Británie?Jaká je nejdelší řeka světa?Kdo je autorem Linuxu?</h3><form><label for="0">Tony Blair</label><input type="radio" id="0" name="choice"><label for="1">Gordon Brown</label><input type="radio" id="1" name="choice"><label for="2">Winston Churchill</label><input type="radio" id="2" name="choice"><label for="3">David Cameron</label><input type="radio" id="3" name="choice"><label for="0">Amazonka</label><input type="radio" id="0" name="choice"><label for="1">Rýn</label><input type="radio" id="1" name="choice"><label for="2">Nil</label><input type="radio" id="2" name="choice"><label for="3">Mississippi</label><input type="radio" id="3" name="choice"><label for="0">Bill Gates</label><input type="radio" id="0" name="choice"><label for="1">Linus Torvalds</label><input type="radio" id="1" name="choice"><label for="2">Liam Neeson</label><input type="radio" id="2" name="choice"><label for="3">Steve Jobs</label><input type="radio" id="3" name="choice"></form><button onclick="nextQuestion();">Next questionNext questionNext question</button><p></p></div></body></html>
Stirl021
JavaScript, AJAX, jQuery › Spuštění PHP funkce při klik…
30. 10. 2014   #195428

#2 Matěj Andrle
Aspoň něco jsem se dozvěděl. Ano, použije se AJAX prostřednictvím jQuery.

Nicméně, jak po kliku na tlačítko stáhnout a uložit soubor jsem se nedozvěděl. Přesto díky za názor, ale můj problém to neřeší.

Stirl021
JavaScript, AJAX, jQuery › Spuštění PHP funkce při klik…
30. 10. 2014   #195424

V PHP mám ve třídě Download definovanou metodu downloadFile(), která pomocí funkce file_get_contents() stáhne z webu obsah stránky a uloží ho na disk jako soubor.

class Download {

    static private function downloadFile() {

        $content = file_get_contents('http://www.adresa.cz/page.html');
        $file = file_put_contents('file.txt', $content);
    }
}

V HTML stránce mám tlačítko a chci, aby po se po kliknutí na tlačítko spustila funkce downloadFile(), tzn. aby se zaktualizoval soubor file.txt.

<button id="downloadFile">Aktualizovat</button>

Jak jsem zjistil, není možné spustit funkci v PHP JavaScriptem, to je celkem jasné. Musím použít jQuery. Tím se taky funkce PHP nespustí, ale je možné vytvořit požadavek a získat výsledek funkce downloadFile. Moje otázka je, jestli lze přímo soubor stáhnout funkcí downloadFile() bez reloadu stránky a jak toho dosáhnout?

Pročetl jsem spoustu rad na internetu, ale nemůžu to pochopit.
Díky
    

Stirling
MySQL › Seznam hodnot ze sloupce tab…
28. 1. 2014   #186771

#2 Kit
To je přesně ono! Díky.

Stirling
MySQL › Seznam hodnot ze sloupce tab…
28. 1. 2014   #186766

Mám v tabulce X řádků, v jednom ze sloupců je kód měny (CZK, USD, EUR...). Tabulka není normalizovaná, takže v každém řádku tabulky je kód měny. Z tabulky chci zjistit, jaké měny jsou v řádcích použity. Tzn. výstupem má být že v ním jsou např. CZK a USD (výsledek dotazu bude obsahovat dvě hodnoty - CZK, USD).

Může mi někdo poradit, jak na to?

Děkuji.

Stirling
PHP › Dynamické načítání stránek s…
23. 6. 2013   #178383

#2 zlz
Hledím na to a neviděl jsem to.
Děkuju.

Stirling
PHP › Dynamické načítání stránek s…
23. 6. 2013   #178381

Mám následující kód na dynamické načítání stránek:

<?php 
	
	$pages_dir = 'pages';
	
	if(!empty($_GET['p']))
	{
		
		$pages = scandir($pages_dir, 0);

		unset($pages[0], $pages[1]);
		
		$p = $_GET['p'];

		if (in_array($p.'inc.php', $pages))
		{
			include ($pages_dir.'/'.$p.'.inc.php');
		}
		
		else echo 'Omlouváme se, požadovaná stránka nebyla nenalezena.';
		
	}
	
	else
	{

		include $pages_dir.'/home.inc.php';
		
	}

 ?>

Problém je, že ať dělám co dělám, načte se jenom chybová hláška 'Omlouváme se, požadovaná stránka nebyla nenalezena.

Přitom  

include $pages_dir.'/home.inc.php';

se naicluduje bez problémů.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý