我有一个提示部分,可以是客户的“自定义”输入。当客户输入值时,我想将其传递给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
。
然后我试图检索他们输入的值。
答案 0 :(得分:1)
我认为这就是你想要的:
$("form").submit(function() {
$("<input>", {
type: "hidden",
name: "update_tip",
value: $("#tip").val()
}).appendTo($(this));
});
这将使用textarea中的值创建隐藏输入,并在提交表单之前将其附加到当前表单。
答案 1 :(得分:0)
您需要在同一页面上使用PHP代码(因为您的表单没有指定操作)来处理数据。使用输入的“name”属性指定要在$ _POST超级全局中访问的值的键。例如,如果我使用以下代码发布表单:
<form method='POST'>
<input type='hidden' value='hello' name='world'>
<input type='submit' value='submit'>
</form>
然后在PHP中,我可以使用以下代码访问名为“world”的元素的值:
$_POST['world']
使用此语法从表单中获取数据并保留/更新它。