我试图修改Wordpress插件。它使用前端表单,使用ajax / jquery处理,将提交内容发布到各种日志中。我需要添加一个额外的字段,将其值传递给.js文件并发布附加字段。
到目前为止,我已经通过挂钩到现有函数添加了附加字段。该字段看起来像这样,在前端可见。
$description_input = '<input type="text" id="custom_message"
name="custom_message" value="" class="transfer-description"
placeholder="Description" />';
echo $description_input;
添加此额外字段的表单包含现有字段:to,sender,recipient,amount,token和submit。
我不明白的是如何将这个额外字段传递给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发布该信息?我不确定我是否正确解释了这一点,但感谢您的帮助。
答案 0 :(得分:0)
首先,您需要获取必填字段的值,就像获得info
的值一样并将其添加到tinfo之后的数据args中:
tinfo : info,
tcustom_message : custom_message
您可以使用$_POST['tcustom_message ']
答案 1 :(得分:0)
我将只复制您上面的代码,并且只标记我认为对您有用的更改:
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在这里)
让我知道这是否有效。