Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Eu criei um formulário HTML no wordpress para salvar no banco os dados do contato. Tenho um SELECT estado:
<select id='estado' name='estado'>
<option value='UF'>Nome do estado</option>
</select>
E um select cidade. Ao selecionar um estado eu preciso que carregue o select de cidades via ajax. As cidades estão em uma tabela do banco de dados do wordpress.
Meu script PHP que recebe a requisição ajax e consulta no banco é esse:
<?php
include "conexao.php";
$estado = mysql_real_escape_string( $_GET['estado'] );
$cidades = [];
$resultado = mysql_query("SELECT Codigo, Nome FROM Municipio WHERE Uf='$estado' ORDER BY Nome", $conexao);
while ( $row = mysql_fetch_array( $resultado ) )
array_push($cidades, ['Codigo' => $row['Codigo'], 'Nome' => utf8_encode($row['Nome'])]);
echo(json_encode( $cidades ));
O script JS que faz a requisição é esse:
$('#estado').change(function () {
if ($('#estado').val()) {
$.getJSON('cidades.ajax.php?search=', {
estado: $('#estado').val(),
ajax: 'true'
}, function (j) {
var options;
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].Codigo + '">' + j[i].Nome + '</option>';
}
$('#cidade').html(options).show();
});
}
});
Isso funciona no meu servidor próprio, mas não consigo fazer funcionar no wordpress. Implementei o script JS através de um plug-in pra inserir JS nas páginas, mas o Wordpress não permite executar um arquivo PHP não registrado por ele (ou algo assim).
Poderiam me ajudar? Como faço pra fazer com que meu script AJAX requisite a consulta no banco do wordpress onde estão as cidades?
Espero ter sido claro.Eu consegui fazer adicionando as funções do arquivo functions.php dentro da pasta do meu tema. Pra quem precisa executar o ajax dentro do wordpress, pesquise sobre como fazer através do arquivo functions.php
Coloque o código no seu arquivos ajax(só arruma o caminho).
require('../../../wp-blog-header.php');