【问题标题】:Save values in db with submit button only仅使用提交按钮将值保存在数据库中
【发布时间】:2014-10-04 11:57:43
【问题描述】:

我正在尝试将一些值保存到数据库中,在第一页上我正在运行一些匹配项,而在第二页上我需要保存值。在第一页上只向用户显示点击按钮,当他点击时,值被存储。

代码

<form action="ms_insert.php" method="post">
<input type="submit" value="Claim your daily bonus" name="test">
</form>

如何提交表单外的所有值并将它们发送到 ms_insert.php 并处理这些值。

我需要什么来实现它。

需要匹配一些值,匹配成功会将输入保存到数据库中。

这是我现在使用的确切代码:

<?php
if ( $thismemberinfo[msurf] >= $msurfclicks ) {
$sql=$Db1->query("INSERT INTO d_bonus VALUES('$userid','0.02',NOW())"); 
echo "success";
}
else
{
echo "wrong";
}
?>
<form action="" method="post">
<input type="hidden" value="123" name="match">
<input type="submit" value="Claim your daily bonus $o.o2" name="claim">
</form>

我希望这个 php 代码在用户单击提交按钮时执行。

【问题讨论】:

  • &lt;input type="hidden" .../&gt;,会话...?
  • 为什么需要提交位于form 标签之外的表单元素?它可以容纳它们。
  • 这些不是表单元素。我有一些已经超出表单的条件,一旦用户单击提交按钮,我需要它们将值存储在数据库中,

标签: php sql


【解决方案1】:

我可以想到两种方法:

  • here 所述,只需将 post 变量设置为另一个值:

    $_POST['text'] = 'another value';
    

    这将覆盖与数组的文本键对应的先前值。 $_POST 是超级全局关联数组,您可以像普通 php 数组一样更改值。

  • 第二种是使用this帖子中描述的_SESSION标签:

    在first.php中:

    $_SESSION['favcolor'] = 'green';
    

    在 ms_insert.php 中:

    echo $_SESSION['favcolor']; // green
    

附:你也可以使用cookies

其他来源:

【讨论】:

  • 看看this 的帖子,这可能会有所帮助。
【解决方案2】:

例如,您可以将 Javascript 与 XHR 对象一起使用,或者尝试插入您的值以存储在隐藏的输入中。

方案一:AJAX,例如:

你的 JS(这里是 Jquery):

function saveInDb(){

    /* Retrieve your values in your page : */
    var myValue1 = $('#value1Id').val();
    var myValue2 = $('#value2Id').val();

    /*Create a Jquery ajax object : */
    $.ajax({
      type: "POST",
      url: "ms_insert.php",
      data: { "value1": myValue1, "value2": myValue2 }
    }).done(function( msg ) {
        alert( "Data Saved");
    });
}

你的 HTML:

<span id="value1Id">My value 1</span>
<span id="value2Id">My value 2</span>
<button onclick=saveInDb()></button>

解决方案 2:带有隐藏输入的 HTML:

<form action="ms_insert.php" method="post">
   <input type="hidden" value="My value 1" name="value1">
   <input type="hidden" value="My value 2" name="value2">
   <input type="submit" value="Claim your daily bonus" name="test">
</form>

【讨论】:

  • 请说明如何。答案应该是评论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多