2014-11-02 57 views
0

我正在动态添加输入和文本(JavaScript中的代码)。我必须将字段中的所有文本添加到数据库(MySQL)。在这种情况下,我不知道如何连接JS和PHP。 添加投入作品。我的问题是动态地向输入数据库添加值。调用变量POST循环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

你​​值不贴/保存的表单提交时,所以这个

$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); 
} 
+0

工作!谢谢youuu差别很大! – Natalia 2014-11-03 17:07:46

+0

很高兴我能够提供帮助。一定要标记答案,以便回答问题。 – Sean 2014-11-04 04:19:33

0

不要附加一个数字到文本框!这很难合作。 只需将您的所有字段命名为 name[] 然后您将以$_POST['name']作为数组获取它们。