javascript - 动态添加表单输入时在 Javascript 中使用 PHP 代码

标签 javascript php html

我正在尝试制作一个表格来注册产品详细信息。 每次用户单击“添加”按钮时,我都想添加更多输入字段,以便用户输入他们的产品。

代码如下所示。

<form id="myform">
<label>Product Name</label>
<input type="text" name="productname0" value=">
<?= !empty($data["error_productname0"]) ? "<p class=\"help is-danger\">". $data["error_productname0"] ."</p>": ""; ?> 
</form>

<script>
    $("button.add").click(function(){
        let inputNumber = $("#myform").children("input").length;
        $("#myform").append(returnNewInput(inputNumber));
    });


    function returnNewInput(n) {

        return `<input type="text" name="productname${n}" value="">
                <?= !empty($data["error_productname${n}"]) ? "<p class="help is-danger">$data["error_productname${n}"]</p>": ""; ?>`;

    }
</script>

但是我在使用 inputNumber 变量时遇到了问题。我无法将其传递到 returnNewInput 函数中。错误提示,

Notice: Undefined variable: n

是否无法在Javascript代码中实现empty、isset等PHP代码?我认为 PHP 代码只是 Javascript 中的一大块字符串。

最佳答案

PHP 在服务器端执行。执行后,结果被发送到用户的Web浏览器。 PHP 绝对不会在用户的浏览器中运行,因此这样做根本行不通。

您面临的问题有两种解决方案:
1)你可以只使用JS来做你想做的事情。
2) 您可以向服务器发出 ajax 请求,让 PHP 渲染一些 HTML 供您使用,然后检索结果并使用 JS 插入它。

第一个解决方案显然更好,因为第二个解决方案要复杂得多,而且完成相同任务时效率低下。

试着这样记住:PHP 是用来设置网页或 ajax 请求结果的初始状态,而不是事后修改它。

关于javascript - 动态添加表单输入时在 Javascript 中使用 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851345/

相关文章:

javascript - 使用 CKEditor 插入文本(软连字符)的键盘快捷键

javascript - 如何更正 NginX 反向代理配置中的 Meteor base-url?

javascript - 使用jQuery中的CSS函数设置多个div的 "left"边距

php - CodeIgniter:发生数据库错误错误号:1054

PHP 将数组拆分为两个数组 - 键数组和值数组

带有 Laravel Blade 模板循环和总和的 JavaScript

javascript - jQuery: $(element).text() 不起作用

javascript - 单击访问传单标记元属性

javascript - 防止 anchor 跟随 href

javascript - 这种检测 iPhone 缩放百分比的方法有多可靠