我从AJAX调用一个PHP文件,我想传递一个变量。这是我的代码:
echo "<h4 style='color:white'>Messages</h4>";
echo "<textarea cols='50' rows='10' style='font-size: 24px;'></textarea><br><br>";
echo "<button id='sendmessage' style='padding:10px'>Submit</button>";
echo "<button id='deletemessage' style='margin-left:5px;padding:10px'>Delete</button>";
echo "<script>
jQuery('#sendmessage').click(function(){
jQuery.ajax({
data: { content: jQuery('textarea').val() },
url:'wp-content/themes/dt-chocolate/postmessages.php',
success:function(data){}
});
});
</script>"
和PHP文件:
<?php
require_once('/opt/lampp/htdocs/mydomain/wp-config.php');
$post = array(
'post_content' => data.content,
'post_title' => "testing",
'post_status' => 'publish',
'post_type' => 'post',
'post_category' => array(28) // Default empty.
);
wp_insert_post( $post );
?>
然而,帖子的内容是&#34; datacontent&#34;而不是textarea的实际文本。我做错了什么?
答案 0 :(得分:3)
echo "<script>
jQuery('#sendmessage').click(function(){
jQuery.ajax({
data: { content: jQuery('textarea').val() },
url:'wp-content/themes/dt-chocolate/postmessages.php',
type: 'POST',
success:function(data){}
});
});
</script>";
-
$post = array(
'post_content' => $_POST['content'],
'post_title' => "testing",
'post_status' => 'publish',
'post_type' => 'post',
'post_category' => array(28) // Default empty.
);
将.ajax
type
(方法)设置为'POST'
,然后您可以从$_POST
数组中读取PHP中的POST请求变量。
答案 1 :(得分:2)
首先,您可能希望使用POST而不是GET。只需在ajax params中添加type:'POST'或使用“post()”函数。
在服务器端,应该检索值的方式是使用$ _GET(或$ _POST)全局变量。您的内容应该是$ _GET ['content']。