ds0802 2014-11-02 23:37
浏览 31
已采纳

在循环PHP中调用变量POST

I am dynamically adding inputs and texts (code in JavaScript). I have to add all the texts from fields to the database(MySQL). I don't know how to connect JS and PHP in this situation. Adding inputs works. My problem is with adding value dynamically to the database form the inputs.

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

So, how can I add texts from inputs to database in this code?

  • 写回答

2条回答 默认 最新

  • dongyan0629 2014-11-02 23:59
    关注

    Your var lp value is not posted/saved when the form is submitted, so this

    $liczba = "<script language='javascript'>document.write(lp);</script>"; 
    echo 'ilosc: '.$liczba;
    

    will not do what you expected.

    Try changing your php to something like

    // 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);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?