我正在动态添加输入和文本(JavaScript中的代码)。我必须将字段中的所有文本添加到数据库(MySQL)中。在这种情况下我不知道如何连接JS和PHP。 添加输入有效。我的问题是通过输入动态地向数据库添加值。
JS
<script type="text/javascript">
var lp=2;
//var lp = "<?= $liczba; ?>";
function dodaj_odpowiedz(kontener){
var kontener = document.getElementById(kontener);
var znacznik = document.createElement('input');
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'odp'+lp);
znacznik.setAttribute('id', 'odp'+lp);
znacznik.className = 'upload';
znacznik.setAttribute('size', '40');
kontener.appendChild(znacznik);
var znacznik2 = document.createElement('input');
znacznik2.setAttribute('type', 'button');
znacznik2.setAttribute('name', 'usuwanie'+lp);
znacznik2.setAttribute('id', 'usun'+lp);
znacznik.className = 'upload';
var funkcja = "usun('"+lp+"')";
znacznik2.setAttribute('onclick', funkcja);
znacznik2.setAttribute('value', 'Usun');
// document.write(znacznik2 . "<br>");
kontener.appendChild(znacznik2);
lp++;
}
function usun(id){
$("#odp"+id).remove();
$("#usun"+id).remove();
}
</script>
PHP:
$liczba = "<script language='javascript'>document.write(lp);</script>";
echo 'ilosc: '.$liczba;
for ($i=2; $i <= $liczba ; $i++)
{
$odpowiedz2 = $_POST['odp".$i."'];
$sql_wprowadz_odpowiedz="INSERT INTO odpowiedzi (Tresc_odpowiedzi, Poprawnosc, ID_pytania) VALUES ('$odpowiedz2', NULL, '$row[ID_pytania]')"; //dodawanie kolejnych odpowiedzi do bazy
mysqli_query($sqlc,$sql_wprowadz_odpowiedz);
}
那么,如何在此代码中将输入中的文本添加到数据库?
答案 0 :(得分:0)
不要在文本字段中附加数字!这很难合作。
只需将所有字段命名为
name[]
那么你将以$_POST['name']
作为数组获得它们。
答案 1 :(得分:0)
提交表单时未发布/保存您的var lp
值,因此
$liczba = "<script language='javascript'>document.write(lp);</script>";
echo 'ilosc: '.$liczba;
不会达到你的预期。
尝试将您的php更改为
// use pre_grep() to find match all the input=odp*, and use count() to get total, and add 1 since you are starting from opd2
$liczba = count(preg_grep('/^odp[\d]*/', array_keys($_POST)))+1;
for ($i=2; $i <= $liczba; $i++) {
//always sanitize your user data
$odpowiedz2 = mysqli_real_escape_string($sqlc,$_POST["odp".$i]);
$sql_wprowadz_odpowiedz="INSERT INTO odpowiedzi (Tresc_odpowiedzi, Poprawnosc, ID_pytania) VALUES ('$odpowiedz2', NULL, '$row[ID_pytania]')"; //dodawanie kolejnych odpowiedzi do bazy
mysqli_query($sqlc,$sql_wprowadz_odpowiedz);
}