Это то, чего я хочу достичь: отправлять данные в PHP с помощью AJAX и jquery и получать ответ в виде элементов html и текста.
<div class = "self">
<div class = "identity" style = "display: none;">1234</div>
<div class = "name" style = "display: none;">Mine</div>
<div class = "city" style = "display: none;">Yours</div>
Helo
</div>
<div class = "self">
<div class = "identity" style = "display: none;">444</div>
<div class = "name" style = "display: none;">Oslo</div>
<div class = "city" style = "display: none;">Kiki</div>
Hi there
</div>
<div class = "self">
<div class = "identity" style = "display: none;">894</div>
<div class = "name" style = "display: none;">That</div>
<div class = "city" style = "display: none;">One</div>
ok
</div>
<script src = "jquery.js"></script>
<script>
$( ".self" ).on("click", function( event ) {
$.ajax({
type: 'POST',
dataType: "json",
url: 'get.php',
data: {
name: $(this).find('.name').text(),
city: $(this).find('.name').text()
},
success: function(data){
if (data.success == true)
alert(data);
}
});
});
</script>
Я хочу отправить имя и город на php и получить ответ, который я могу поместить в элемент div. мой код php ниже
if (isset($_POST['name'])) {
$data = "<div>". $_POST['city'] ."is my home town my name is" . $_POST['name'] ."</div>" ;
echo json_encode($data);
}
Как мне это сделать, и все ли в порядке со стороной php? может получить запрос AJAX?
Не кодируйте ответ JSON, так как это все равно html, и вы хотите вставить его прямо в HTML-страницу. Просто echo $data, удалите dataType: "json" в своем javascript, а затем в функции success сделайте что-нибудь вроде $("selectorForContainerDiv").html(data). (Хотя это не имеет значения, вы, вероятно, захотите просто назвать его response или что-то в этом роде, а не data, поскольку это не HTML и не JSON.)
Все еще не получил ответа.
@RobinZigmond удалил dataType: «json» удалил кодировку json и изменил содержимое функции успеха.
вы также удалили if (data.success == true), как сказал @Jeto?
Да, я вернул dataType, но передал пустую строку и получил ответ всего html, однако переданные мной значения не были включены в ответ. Мне нужен ответ, который должен быть переменной, содержащей элементы html со значениями переданных переменных. Я должен иметь возможность получить <div> Something <?=$name?> something </div>, который содержится в переменной $data, но все, что я получаю, это <div> Something Something </div> без значения $name.
Это то, что я хочу получить ob_start(); include 'content.html.php'; $data=ob_get_clean();. Включаемому файлу будут передаваться переменные, а вывод будет в формате html. Я хочу поместить значение $ data на другую страницу в качестве ответа.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


if (data.success == true)не может быть правдой, вы не возвращаете никакого значенияsuccessиз вашего PHP-скрипта.