带有 javascript 和 php 的动态表单字段:它不起作用

Posted

技术标签:

【中文标题】带有 javascript 和 php 的动态表单字段:它不起作用【英文标题】:dynamic form fields with javascript an php: It doesn't work 【发布时间】:2015-12-16 10:54:37 【问题描述】:

我有一个动态添加表单字段的小型 javascript

我没有任何 php 代码的 javascript sn-p 工作正常。

<script type="text/javascript">
var counter = 0;
$(function()
 $('p#add_field').click(function()
 counter += 1;
 $('#container').append(
 '<strong>Artikel ' + counter + '</strong><br />'
 + '<input id="field_' + counter + '" name="dynfields[]' + '" type="text" class="login-username" /><br />'
 + '<input id="field2_' + counter + '" name="dynfields2[]' + '" type="text" class="login-username" /><br />' );
 );
);
</script>

但在这个脚本中,我需要一个从数据库中读取条目以获取选择选项字段(下拉列表)的数组。

我是这样做的:

<script type="text/javascript">
var counter = 0;
$(function()
 $('p#add_field').click(function()
 counter += 1;
 $('#container').append(
 '<strong>Artikel ' + counter + '</strong><br />'
 + '<input id="field1_' + counter + '" name="dynfields[]' + '" type="text" class="login-username" /><br />'
 + '<input id="field2_' + counter + '" name="dynfields2[]' + '" type="text" class="login-username" /><br />'
 + '<select name="dynfields3[]' + '">

    <?php
        $abfrage = "SELECT * FROM artikel";
        mysql_query("SET NAMES SET 'utf8'");
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
        
         $id = $row->id;
         $name = $row->name;
         $beschreibung = $row->beschreibung;
         $preis = $row->preis;
         echo " <option value='$row->id'>$row->name;</option>  ";
        
    ?>
        </select><br />'

     );

     );
    );
    </script>

它不起作用。我收到以下错误 Uncaught SyntaxError: Unexpected token ILLEGAL

怎么了?我很高兴得到任何帮助。

问候, 斯蒂芬

【问题讨论】:

你不必要地放了太多` ' +` 【参考方案1】:

你可以试试这个:

<script type="text/javascript">
var counter = 0;
$(function()
 $('p#add_field').click(function()
 counter += 1;
 $('#container').append(
 '<strong>Artikel ' + counter + '</strong><br />'
 + '<input id="field1_' + counter + '" name="dynfields[]' + '" type="text" class="login-username" /><br />'
 + '<input id="field2_' + counter + '" name="dynfields2[]' + '" type="text" class="login-username" /><br />'
 + '<select name="dynfields3[]">' +

 + '<?php $abfrage = "SELECT * FROM artikel"; mysql_query("SET NAMES SET 'utf8'"); $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis))?>'
+ '<option value="' + '<?php echo $row->id ?>' + '">' + '<?php echo $row->name ?>' + '</option>'
+ '<?php ?></select></br>'

     );

     );
    );
    </script>

【讨论】:

【参考方案2】:

我认为错误就在这里

 + '<select name="dynfields3[]' + '">

也许你打算

 + '<select name="dynfields3[]" >' + 



<?php
    $abfrage = "SELECT * FROM artikel";
    mysql_query("SET NAMES SET 'utf8'");
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    
     $id = $row->id;
     $name = $row->name;
     $beschreibung = $row->beschreibung;
     $preis = $row->preis;
     echo " <option value='$row->id'>$row->name;</option>  ";
    
?> 

+ '</select><br />';

【讨论】:

以上是关于带有 javascript 和 php 的动态表单字段:它不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Javascript 访问动态表单元素 id

使用 PHP 和 JavaScript 动态搜索 SQL 表并在 HTML 上显示

PHP-在表格的每一行中动态插入带有javascript的innerhtml

如何动态添加带有引导表单元素的 div?

从javascript函数创建的表单提交FormData到php

带有双引号的 JAVASCRIPT var 到 PHP 并返回用于自动填充