将参数从Ajax传递到PHP文件

时间:2015-02-06 17:13:12

标签: php jquery ajax wordpress

我从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的实际文本。我做错了什么?

2 个答案:

答案 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']。