Система опроса Php ajax с несколькими ответами

116
6

Я пытаюсь создать систему опроса, используя php, mysql и ajax. Я создал таблицу опросов из базы данных.

id
answer
vote

Я хочу, чтобы пользователи увеличивали свои ответы, и я создал простую функцию javascript, такую как DEMO

<div class="inputsl">
<div class="inputt"><input type="text" id="createPoll" name="mypoll" class="myinput"></div>
<div class="inputt"><input type="text" id="createPoll" name="mypoll" class="myinput"></div>
<div class="inputt"><input type="text" id="createPoll" name="mypoll" class="myinput"></div>
<div class="inputt"><input type="text" id="createPoll" name="mypoll" class="myinput"></div>
</div>

Я также создал функцию ajax для вставки ответов

$("body").on("click",".insertp", function(){
var poll = $("#createPoll").val();
var dataPoll = 'poll=' + poll;
$.ajax({
type:'POST',
url:'/requests/postPoll',
data: dataPoll,
cache: false,
beforeSend: function(){},
sucess: function(){
console.log("Success!");
}
});
});

и функции postPoll.php

<?php 
include_once '../inc/inc.php';
if(isset($_POST['poll'])){
$poll = mysqli_real_escape_string($db, $_POST['poll']);
if($poll){
foreach($poll as $setPoll){
$insertPollfromData = $InSert->Insert_Poll($uid, $setPoll);
}
}
}
?>

Теперь я хочу вставить несколько ответов из таблицы опросов, но мой postPoll.php дает мне эту ошибку:

Предупреждение: неверный аргумент, предоставленный foreach() в

Как я могу вставить несколько опросов из базы данных? Кто-нибудь может мне помочь? Заранее благодарю вас за помощь.

спросил(а) 2021-01-25T16:07:28+03:00 4 месяца, 3 недели назад
1
Решение
63

В вашем html я бы предложил использовать <form> и добавлять к нему входные данные. то вы можете использовать https://api.jquery.com/serialize/

Чтобы отправить сериализованные данные из всех входов в ваш файл PHP через ajax.

ответил(а) 2021-01-25T16:07:28+03:00 4 месяца, 3 недели назад
45

mysqli_real_escape_string возвращает строку

foreach требует массива как параметра для итерации.


Вам нужно отправить опрос как массив в ваш PHP-скрипт и выполнить mysqli_real_escape_string для каждого члена массива.

ответил(а) 2021-01-25T16:07:28+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема