【问题标题】:Passing a form field to ajax, and then posting it via php将表单字段传递给ajax,然后通过php发布
【发布时间】:2014-01-06 07:39:59
【问题描述】:

我试图修改 Wordpress 插件。它使用前端表单,使用 ajax/jquery 处理将提交内容发布到各种日志中。我需要添加一个附加字段,将其值传递给 .js 文件并发布附加字段。

到目前为止,我已经通过挂钩到现有函数添加了附加字段。该字段看起来像这样,并且在前端可见。

$description_input = '<input type="text" id="custom_message" 
name="custom_message" value="" class="transfer-description" 
placeholder="Description" />';
echo $description_input;

添加此额外字段的表单具有现有字段:收件人、发件人、收件人、金额、令牌和提交。

我不明白的是如何将这个额外的字段传递给 ajax 函数。

处理表单的 .js 文件的第一部分如下所示:

开发人员一直在帮助我,否则我永远不会做到这一点......他添加了 'info' 和 tinfo : info ,我认为它们应该处理额外的字段。

jQuery(function($){
// Transfer function
var transfer_creds = function( to, creds, info, label ) {
$.ajax({
type : "POST",
data : {
action    : 'myc-transfer-creds',
sender    : myC.user_id,
recipient : to,
amount    : creds,
token     : myCRED.token,
tinfo     : info
},
dataType : "JSON",
url : myC.ajaxurl,
... (the rest of the .js here)

然后将额外的字段插入到开发人员正在使用的日志条目中:

$transfer_message = '';
if ( isset( $_POST['tinfo'] ) )
$transfer_message = sanitize_text_field( $_POST['tinfo'] );

这不是完整的代码,但似乎是相关部分。所以,我的问题再次是如何向 ajax 发送一个额外的表单字段,然后通过 php 发布该信息?我不确定我是否正确解释了这一点,但感谢您的帮助。

【问题讨论】:

  • 不确定您所说的“附加表单域”是什么意思。您想通过 AJAX 向 PHP 发送另一个 $_POST 数组元素吗?如果是这样,只需将其放入 $.ajax 对象的参数的数据对象中即可。
  • 你有没有得到一些error 或在php file 中尝试print_r($_POST);,然后签入console。
  • 表单已经存在,我需要挂钩并插入一个额外的字段,然后处理该字段。 @RohanKumar 没有错误,不知道该放在哪里: print_r($_POST); .在我的 php 文件中,它返回:array ().
  • 我把整个代码做了一个粘贴箱:.php:pastebin.com/jvvPQgWS.js:pastebin.com/wVuGNjXr

标签: php jquery ajax wordpress .post


【解决方案1】:

首先你需要获取必填字段的值,就像你获取 info 的值一样

并将其添加到 tinfo 之后的数据参数中,例如:

tinfo     : info,
tcustom_message  : custom_message

您可以使用$_POST['tcustom_message ']访问这些数据

【讨论】:

    【解决方案2】:

    我将照原样复制您上面的代码,并且只标记我所做的我认为对您有用的更改:

    jQuery(function($){
    
    var info = $('#custom_message').val(); //add this line to get your message
    
    // Transfer function
    var transfer_creds = function( to, creds, info, label ) {
    $.ajax({
    type : "POST",
    data : {
    action    : 'myc-transfer-creds',
    sender    : myC.user_id,
    recipient : to,
    amount    : creds,
    token     : myCRED.token,
    tinfo     : info
    },
    dataType : "JSON",
    url : myC.ajaxurl,
    

    ...(此处为 .js 的其余部分)

    让我知道这是否有效。

    【讨论】:

    猜你喜欢
    • 2014-02-02
    • 2014-02-02
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多