мне нужно получить html-ответ двух функций php с помощью AJAX
Вот мой код
Home.php
<script>
$( document ).ready(function(){
var parameter = {
"mynumber" : $('#mynumber').val()
};
$.ajax({
data: parameter ,
url: 'script.php',
type: 'post',
dataType: 'json',
beforeSend: function () {
$("#loading").show();
},
success: function (response) {
$("#loading").hide();
$("#div1").html(response.reply1);
$("#div2").html(response.reply2);
},
}); });
</script>
И скрипт.php
function loopone(){
for($a=0;$a<10;$a++){
?><div id = "mydiv"><?php echo $a;?></div>
}
}
function casetwo(){
if ($a<>$g){
?><div id = "mydiv2"><?php echo $a;?></div>
}
}
$prew1=file_get_contents(loopone());
$prew2=file_get_contents(casetwo());
$reply1=prew1;
$reply2=prew2;
echo json_encode(array("reply1"=>$reply1, "reply2"=>$reply2));
что здесь не так? Я не вижу результатов.
Что такое $a и $g в casetwo?
Бармар, я использую file_get_contents(), потому что мои две функции возвращают значения в html и PHP (внутри есть цикл for ona y if условие другого, и я могу сделать это с помощью json) для заполнения или главной страницы
Вы никогда не открываете PHP повторно после его закрытия. Вы всегда должны делать отступы в управляющих структурах.






file_get_contents() предназначен для чтения файла или URL-адреса в строку. Вам не нужно их использовать, если вы создаете контент в своем скрипте. Просто пусть ваши функции возвращают строки.
function loopone() {
$result = "";
for (a = 0; $a < 10; $a++) {
$result .= "<div class='mydiv'>$a</div>";
}
return $result;
}
function casetwo() {
global $a, $g;
if ($a != $g) {
return "<div id='mydiv2'>$a</div>";
} else {
return "";
}
}
$prew1 = loopone();
$prew2 = casetwo();
echo json_encode(array("reply1"=>$prew1, "reply2"=>$prew2));
Я изменил id = "mydiv" на class = "mydiv", потому что идентификаторы должны быть уникальными, вы не должны возвращать один и тот же идентификатор в цикле.
Спасибо, Бармар, и как мне получить результат, чтобы отправить его на мой home.php с помощью json?
Вызовите функции и назначьте возврат переменным. Просто базовое программирование.
Аргумент
file_get_contents()должен быть именем файла или URL.loopone()иcasetwo()не возвращают имена файлов, они выводят вывод.