使用jquery将textarea的值传递给PHP


Passing value of textarea with jquery to PHP

我有一个提示部分,可以从客户"自定义"输入。当客户输入一个值时,我想把它传递给PHP来更新订单。

我没有成功,我认为我处理这个问题的方式不对,因为我无法让它发挥作用。在不使用AJAX的情况下,我可以使用哪些选项?

提示部分:

  <?= ($receipt['tip'] > 0 ?
  '<tr id="tip-area"><th>Tip</th>
    <td><textarea id="tip" name="update_tip" readonly>'. $receipt['tip'].'</textarea></td>
  </tr>'
  : '') ?>

我的表格有不同的提示选项:

    <form method="post">
      <tr>
        <button title="20% Tip" type="submit" name="update_tip" id="update_tip" class="tip-button"
                value="<?= ($_SESSION['order']['quote']['subtotal'] * 0.2); ?>">
          <small>20%<br><?= number_format(($_SESSION['order']['quote']['subtotal'] * 0.2), 2) ?></small>
        </button>
        <button title="Edit Tip" type="button" name="update_tip" id="custom-tip" class="tip-button">
          <small>Edit<br>Tip<br></small>
        </button>
        <button title="Save Tip" type="submit" id="save_tip" class="hidden">
          <small>Save<br>Tip</small>
        </button>
      </tr>
    </form>

我的jQuery:

  $('#custom-tip').click(function(){
    $('#tip').removeAttr('readonly').focus();
    $('.tip-button').addClass("hidden");
    $('#save_tip').removeClass("hidden");
  });
  $('#save_tip').click(function (){
    var tip = $('textarea#tip').val();
    $('<input type="hidden" name="update_tip" value="' + tip + '">').submit();
  });
  $('#tip').focus(function(){
    this.value = '';
  });

当他们按下"编辑提示"时,readonly属性将被删除,该区域将成为焦点并清除值。

然后用户应该输入一个值并点击Save

然后我试图检索他们输入的值。

我想这就是你想要的:

$("form").submit(function() {
    $("<input>", {
        type: "hidden",
        name: "update_tip",
        value: $("#tip").val()
    }).appendTo($(this));
});

这将使用文本区域中的值创建隐藏输入,并在提交表单之前将其附加到当前表单。

您需要在处理数据的同一页面上有PHP代码(因为您的表单没有指定操作)。使用输入的"name"属性可以指定要在$_POST超级全局中访问的值的键。例如,如果我发布了一个带有以下代码的表单:

<form method='POST'>
    <input type='hidden' value='hello' name='world'>
    <input type='submit' value='submit'>
</form>

然后在PHP中,我可以使用以下代码访问名为"world"的元素的值:

$_POST['world']

使用此语法从表单中获取数据并将其持久化/更新。