javascript - 使用 jQuery 更新 span,使用 PHP 获取它?

标签 javascript php jquery

我有一个 jQuery 脚本,当用户单击不同的按钮时,它会更新跨度。它会根据需要更新并显示。 但我想用 PHP 获取这个“变量”并将其输入到文件中。 当文档加载时,跨度的值为 0,并且随着用户单击特定按钮而变得更高。当我将跨度值写入文本文件时,它始终为 0。有帮助吗?

jQuery:

$(".button").click(function()
{   
    $(this).addClass("button-clicked");

    $(this).siblings(".button").addClass("disabled");

    $(this).siblings(".rett").addClass("rett-ved-feil");

    $(this).unbind("click");
    $(this).siblings(".button").unbind("click");

    if($(this).hasClass("rett"))
    {
        rettVar++;

        $("#antall-rett").html(rettVar);
        $("#score").html(rettVar);

        $(this).addClass("button-clicked-riktig");
    }

});

PHP:

if (isset($_POST["submit"]))
    {
        $doc = new DOMDocument; 
        $doc->loadHTMLFile('index.php'); 
        $node = $doc->getElementById('score'); 

        $score = $node->nodeValue;

        $fil = fopen("score.txt","a");

        $loglinje =  $_POST["navn"] . ": " . $score;

        fwrite ($fil, $loglinje . "\n");
        fclose($fil);
    }

HTML:

<!doctype html>

<title>Huskampanje Quiz</title>

<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="mediaqueries.css">

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">   

<script src="js/jquery-1.11.2.js" type="text/javascript"></script>
<script src="js/myjs.js" type="text/javascript"></script>
<script src="js/scrollToggle.js" type="text/javascript"></script>

<section class="section" id="intro">

    <div class="content">

        <h1>Huskampanje quiz<br /><span class="handsome">Ta quizen her</span></h1>

    </div>

    <a href="#brannskader-section"><img src="img/pil.png" id="pil" /></a>

</section>
<section class="section" id="håndverker-section">

    <div class="content">

        <p>

            Når det gis et prisoverslag på en håndverkertejeneste kan endelig pris maks overstige..

        </p>

        <span class="button">5%</span>
        <span class="button">10%</span>
        <span class="button rett">15%</span>
        <span class="button">20%</span>

        <span class="steps">4/10</span>

    </div>

</section>
<section class="section" id="naturskade-section">

    <div class="content">

        <p>

            Ved påsketider har snøen ligget en stund på hyttetak, og oppnår høyere egenvekt enn når den er fersk. Om vi har et 
            hyttetak på 100 kvadratmeter og snødybden er 1 meter vil vekten av snøen være omlag..

        </p>

        <span class="button rett">30 tonn</span>
        <span class="button">10 tonn</span>
        <span class="button">5 tonn</span>
        <span class="button">20 tonn</span>

        <span class="steps">10/10</span>

    </div>

</section>  
<ul id="sticky">

    <li id="header-sticky">Antall rett</li>

    <li id="antall-rett">0</li>

</ul>
<section id="resultat">

    <div class="content" id="resultat-content">

        <div class="score">

            <span id="score">0</span>

            <form action="index.php" method="post">

                <input type="text" name="navn">
                <input type="submit" name="submit">

            </form>
            <?php



    if (isset($_POST["submit"]))
    {
        $doc = new DOMDocument; 
        $doc->loadHTMLFile('index.php'); 
        $node = $doc->getElementById('score'); 

        $score = $node->nodeValue;

        $fil = fopen("score.txt","a");

        $loglinje =  $_POST["navn"] . ": " . $score;

        fwrite ($fil, $loglinje . "\n");
        fclose($fil);
    }

?>
        </div>

    </div>

</section>

最佳答案

正如他们告诉您的,Javascript 是客户端,而 PHP 是服务器端。

这意味着客户端发生的事情会保留在那里,服务器根本不关心。如果您想使用该值更新文件,有两种方法可以实现。

1.AJAX,将值异步发送到 php 文件并将所需的值写入文件/数据库...

2.制作表单并检索数据并将其保存在您想要的位置。为此,例如,创建隐藏输入,该输入将随着每次点击而增加。

编辑:对于数字 2,如果您有多个页面,则可以使用名称隐藏输入,例如:“right_answers”

<form>
    ...
    <!-- first page -->
    <input type="hidden" name="right_answers" value="0">
    ...
</form>

然后在下一页的开头检查答案是否正确:

<?php
    if($_POST['question'] == "answer") {
        $goodAnswer = $_POST['right_answers']+1;
    }
    else {
        $goodAnswer = $_POST['right_answer'];
    }
?>
<form>
    ...
    <input type="hidden" name="right_answers" value="<?php echo $goodAnswers; ?>">
    ...
</form>

这样您将始终知道用户做出的正确答案。这只是一个想法,当然还有更好的方法。

关于javascript - 使用 jQuery 更新 span,使用 PHP 获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28412373/

相关文章:

循环内的javascript AttachEvent

javascript - java而不是cordova元素中的html、css和js

javascript - Angular ui 网格,安装和构建

php - sqrt()的逆向计算

php - 目标 : PHP to set object class, CSS 基于类显示图像,使图像可点击。不工作

php - SQL 连接表日期搜索

javascript - 文档内嵌套集合的 Firestore onSnapshot

jquery - 在一个页面上多次使用视差插件?

jquery - 使用ajax上传时Django文件丢失

javascript - jQuery 类不会添加更改选择框的选项