erro ajax em wordpress plugin

votos
1

Estou escrevendo um plugin para wordpress. O plugin tem um widget que contém um botão e caixa de texto. o botão tem evento onclick. quando esse evento ocorre i precisa postar os dados de caixa de texto para o arquivo php usando AJAX o código ajax não retorna um erro, mas php não obter os dados.

aqui está o meu arquivo JS

 function F()
    {
        var x=document.getElementById('last').value;


        jQuery.ajax({
            type: POST,
            url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',         
            data: x,
            success: function() {
                alert('Sends successfully');
            },
            error: function(jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
            }
        });
    }

aqui está o meu arquivo php

<?php
    if(isset($_POST[anun]))
    {
        echo $_POST['anun'];
    }
    else
    {
        echo error;
    }
?>

por favor ajudar a corrigir esse problema

Publicado 22/04/2015 em 16:35
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Em seu PHP $_POSTestá esperando um par chave / valor e que você está enviando apenas um valor em sua ajax. Onde anun 'seria a chave e tudo o que está armazenado em xé o valor.

Desde que você não está enviando a 'chave anun ' para $_POSTele não pode retornar o valor armazenado em xcausa a sua ifcondição de falha.

Você deve ser capaz de corrigir isso alterando a sua chamada ajax ligeiramente:

function F() {

    var x = document.getElementById('last').value;

    jQuery.ajax({
        type: "POST",
        url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',         
        data: { anun: x },
        success: function() {
            alert('Sends successfully');
        },
        error: function(jqXHR, textStatus, errorThrown) {
        alert(errorThrown);
        }
    });
}

Para ter certeza que você está recebendo o valor correto de x, tente usar console.log(x);pouco antes de sua chamada ajax e verificar o console do navegador para ver o que ele retorna.

Se ele não retornar o valor correto ou simplesmente não retorna nada, tente mudar:

var x = document.getElementById('last').value;

Para simplesmente:

x = jQuery('#last').val();
Respondeu 22/04/2015 em 17:07
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more