【问题标题】:Would I use Ajax or PHP to change var value?我会使用 Ajax 或 PHP 来更改 var 值吗?
【发布时间】:2025-05-31 18:00:01
【问题描述】:

我正在尝试为新访问者(使用 cookie)做一个小的下拉调查,这样我就可以收集数据,但我对如何编译它有点困惑。

如果单击了一个按钮,则 onClick 它会转到var answer1 = answer1 +1,或者类似的东西。

我遇到的问题是指向应该更改变量的位置。 考虑到 javascript 在本地运行,它无法更新服务器值。

有人可以告诉我要添加什么到按钮 onClick 以向 answer 变量添加一个,无论是 PHP 还是 ajax,以及向服务器本身添加什么?

如果您需要小调查本身的示例,here is the fiddle

这是原始代码:

HTML:

<body>
<div class="poll-box">
    <div class="poll-text">
            <h1>Sorry, quick question!</h1>
            <h2>Insert Question Here</h2>
        <p>
            <button onClick=""></button>&nbsp;&nbsp;&nbsp;&nbsp;Answer 1
            <br />
            <br />
            <button onClick=""></button>&nbsp;&nbsp;&nbsp;&nbsp;Answer 2
            <br />
        </p>
    </div>
</body>

CSS:

html {
    font-family:Lato, sans-serif;
}
.poll-box {
    width:60%;
    background-color:#648FBD;
    height:40%;
    margin-left:auto;
    margin-right:auto;
    vertical-align:middle;
    position:absolute;
    border-radius: 16px 16px 16px 16px;
    -moz-border-radius: 16px 16px 16px 16px;
    -webkit-border-radius: 16px 16px 16px 16px;
    border: 0px solid #000000;
}
.poll-box h1 {
    padding-top:2%;
    font-size:24px;
}
.poll-box h2 {
    padding-top:2%;
    font-size:18px;
}
.poll-box p {
    padding-top:2%;
    font-size:14px;
}
.poll-text {
    left:5%;
    position:absolute;
}
.poll-text button {
    padding-right:3%;
    padding-top:3%;
}

【问题讨论】:

  • 我觉得这里不需要你的css代码,你的js代码会更有帮助。
  • 先用javascript修改,再通过ajax发送到php。
  • @Daan 我的 JS 代码基本上就是我在上面写的。
  • @slime 我可以使用 Ajax 将其发送到数组吗?
  • 您可以在js中构建数组然后通过ajax发送,或者通过ajax发送片段并在php中构建。

标签: javascript php jquery arrays ajax


【解决方案1】:

您最好使用 HTML 复选框,而不是使用按钮和计算 JavaScript 变量,因为这些复选框不会触发后台操作(如果不明确需要这种方式),因为在使用按钮时需要它们。 当您继续在这里使用按钮时,您需要在所有这些东西背后有一些更复杂的逻辑,否则只需将每个用户的决定/更改立即保存到数据库中。

使用表单时,您将在用户的提交操作汇总为一个结果后向您发送决定/选择,而不是强制您一次又一次地处理每次点击。这将为您节省一些流量、计算时间以及可能的数据库查询。

要使用复选框,只需在这些新的复选框元素周围放置一些“表单”-DOM,并在下方添加一个提交按钮,结果如下:

<form class="poll-box" method="post" action="handler.php">
   <div class="poll-text">
           <h1>Sorry, quick question!</h1>
           <h2>Insert Question Here</h2>
           <p>
               <input type="checkbox" name="some_var_name_to_use"> Answer 1
               <hr />
               <input type="checkbox" name="some_var_name_to_use_2"> Answer 2
           </p>
   </div>
   <input type="submit" value="send" />
</form>

PS。您错过了在正文结束之前关闭您的 div 层之一。

【讨论】:

  • 我需要单独制作一个提交表单吗?
  • @ShaunLoftin:我猜不,但我不太确定你的问题到底针对什么。你只需要这个单一的形式。当用户提交时,用户输入到该表单的每一件事都将使用 DOM“name”属性作为 PHP 中的变量名发送到 handler.php。这是否以某种方式回答了您的问题?
最近更新 更多