2016-03-27 16 views
0

jetzt i zufälligen Text Änderung vornehmen müssen dieses Skript, das den Benutzern ein zufälliges Wort gibt .. aber der einzige Weg, um ein neues Wort zu erhalten, ist die Seite zu aktualisieren ...wie ohne Neuladen der Seite

i Ich möchte in der Lage sein, die Wörter in einem bestimmten Intervall zu ändern, anstatt dann die Seite oder den Browser neu zu laden, aber ich habe keine Ahnung, wie zu tun und ich habe für immer gelesen und kann es nicht herausfinden

hier ist mein PHP-Code

<?php 
/* File, where the random text/quotes are stored one per line */ 
$settings['text_from_file'] = 'quotes.txt'; 
/* 
* If you prefer you can list quotes that RanTex will choose from here. 
* In this case set above variable to $settings['text_from_file'] = ''; 
*/ 
$settings['quotes'] = array(
    'First quote', 
    'Multi 
line 
quote', 
    'Second quote', 
    'Third quote', 
    'Some text with <b>HTML</b> code!', 
    'Any single quotes \' must be escaped with a backslash', 
    'A quote with a <a href="http://www.phpjunkyard.com">link</a>!' 
); 
/* 
* How to display the text? 
* 0 = raw mode: print the text as it is, when using RanTex as an include 
* 1 = Javascript mode: when using Javascript to display the quote 
*/ 
$settings['display_type'] = 1; 
/* Allow on-the-fly settings override? 0 = NO, 1 = YES */ 
$settings['allow_otf'] = 1; 
// Override type? 
if ($settings['allow_otf'] && isset($_GET['type'])) { 
    $type = intval($_GET['type']); 
} else { 
    $type = $settings['display_type']; 
} 
// Get a list of all text options 
if ($settings['text_from_file']) { 
    $settings['quotes'] = file($settings['text_from_file']); 
} 
// If we have any text choose a random one, otherwise show 'No text to choose from' 
if (count($settings['quotes'])) { 
    $txt = $settings['quotes'][array_rand($settings['quotes'])]; 
} else { 
    $txt = 'No text to choose from'; 
} 
// Output the image according to the selected type 
if ($type) { 
    // New lines will break Javascript, remove any and replace them with <br /> 
    $txt = nl2br(trim($txt)); 
    $txt = str_replace(array(
     "\n", 
     "\r" 
    ), '', $txt); 
    // Set the correct MIME type 
    header("Content-type: text/javascript"); 
    // Print the Javascript code 
    echo 'document.write(\'' . addslashes($txt) . '\')'; 
} else { 
    echo $txt; 
} 
?> 

er re ist das Javascript auf meiner HTML-Seite, die den PHP-Code ich ein neues Wort erhalte Recht

<script type="text/javascript" src="randomword.php?type=1"></script> 

jetzt ruft die evertime Seite neu geladen, aber ich das Wort alle 5 Sekunden ändern, ohne möchte die Seite zu aktualisieren. .... kann mir jemand zeigen, was mein Code mögen soll?

+0

Versuch mit einem Ajax-Aufruf randomword.php type = 1, dann aktualisieren, um den dom mit dem Ergebnis – rmjoia

+0

Ich habe keine Ahnung, wie ich über diese lol gehen würde .... – skapaid

Antwort

1

versuchen, etwas wie folgt aus:

in Ihrem HTML einen Tag hinzufügen wie folgt: <div id="myrandomtext"></div>, wo Sie es wollen zeigen, und dann an diesem Stück JavaScript auf Ihrer Website:

setInterval(function() { 

    $("#myrandomtext").load("randomword.php?type=1"); 

}, 5000); 

5000 ist 5 Sekunden. Sie können es ändern, was Sie wollen (1 Sekunde = 1000). Sie ändern müssen:

header("Content-type: text/javascript"); 
// Print the Javascript code 
echo 'document.write(\''.addslashes($txt).'\')'; 

zu

echo $txt; 

und <script type="text/javascript" src="randomword.php?type=1"></script>

Hinweis entfernen: Diese nutzt jQuery.

+0

es ändert sich alle 5 Sekunden ... aber es zeigt diese – skapaid

+0

'document.write ('Decants')' – skapaid

+0

statt nur dekantiert – skapaid

0

Ich würde die PHP-Datei schreiben, so dass sie eine JSON-Zeichenfolge zurückgeben. Ich würde eine Funktion schreiben, die jQuery.get verwendet, um das Ergebnis aus der PHP-Datei zu analysieren. Dann rufe diese Funktion mit der Funktion seTimeout auf. Also Ihr Javascript würde wie folgt aussehen:?

function getword(){ 
    $.get("randomword.php", function(data) { 
    $("body") 
    .append("Word: " + data.word) 
}, "json"); 
} 
setTimeout(getword, 2000); 
Verwandte Themen