источник сообщения:
foreach($_POST as $key=>$value){
echo "$key $value<br>";
}
результат из souce выше:
key1 value1
key2 value2
key3 value3
...
key**n** value**n**
потому что php - это сценарий на стороне сервера. результат показывают в то же время.
моя цель - показать, что каждая строка выполнялась по одному.
моя идея - использовать ajax для выполнения.
foreach($_POST as $key=>$value){
echo"
<script>
$.ajax({
url: "save.php",
type: "POST",
data: "key="+$key,"value="+$value,
dataType: "text",
success: function(data){
if (data==1){
$("#result").append("<div><?=$key." and ".$value?> has been saved</div>");
}
}
});
</script>
}
что лучше всего использовать идеи выше? я должен положить ajax foreach или просто позвонить ему один раз?
Его лучше хранить все запросы ajax в одном объекте ob ob и вызвать его в конце:
echo "
<script>
var _ajax = [];";
foreach($_POST as $key=>$value){
echo"
_ajax.push({
data: "key="+$key,"value="+$value
});
";
}
echo "
for(var i=0;i<_ajax.length;i++) {
makeCall(_ajax[i]);
}
function makeCall(value){.
$.ajax({
url: "save.php",
type: "POST",
data: value,
dataType: "text",
success: function(data){
if (data==1){
$("#result").append("<div><?=$key." and ".$value?> has been saved</div>");
}
}
});
}
}
</script>";
И если вы используете q- библиотеку для обещаний, вы будете делать все более и более чистым. Я изменил код для вызова ajax внутри функции.