在循环PHP中调用变量POST

时间:2014-11-02 23:37:21

标签: javascript php

我正在动态添加输入和文本(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);
                }

那么,如何在此代码中将输入中的文本添加到数据库?

2 个答案:

答案 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);
}