首页 文章

从头开始将JS数组传递给PHP以获取联系表单

提问于
浏览
0

我正在从头开始创建自己的联系表单 . 目前我正在尝试使JS通用,所以当我在我的网站上创建另一个表单时,它将使用相同的代码 .

我想获得输入,无论我是做对还是错,并且需要帮助将数组传递给PHP,这将传递数组中具有属性 required (true或false)的元素 .

目前我的JS数组包括:

var inputData = ({name: $(this).attr('name'), value: $(this).val(), required: $(this).attr('required')});

inputData 是我传递给php的数组,它在php中经过并验证用户输入的所有信息都是正确的 . 它检查输入是否为 required ,因为并非所有输入都是必需的 .

所以在我的PHP中,我有一个简单的数组,可以从我的JS代码中获取发布的数据 .

$emailData= array(array('f_name' => $_POST['f_name']),
            array('l_name' => $_POST['l_name']),
            array('p_num' => $_POST['p_num']),
            array('contact_email' => $_POST['contact_email']),
            array('message' => $_POST['message']),
            array('botCheck' => $_POST['botCheck']));

我虽然只有 Value ,但我知道为什么会这样 . 但我不确定如何基本上指示php数组从相应的值中获取 required .

我知道有人可以简单地删除html中所需的attr,但我最初的想法只是数据库中的表单,以便php知道在有人试图删除所需属性时真正需要什么 . 这是做到这一点的方式还是更简单?

1 回答

  • 1

    从安全角度来看,不建议这样做,以便从客户端发送有关是否建议使用字段的信息 . 理想情况下,这应该在服务器端配置 . 您可以通过循环遍历PHP数组来配置PHP数组并在HTML上输出字段:

    // Render
    $fields = [
        "f_name" => [
            "required" => true
        ],
        "l_name" => [
            "required" => true
        ],
        "message" => [
            "required" => false
        ],
        // ... configure all your fields here
    ];
    
    foreach ($fields as $name => $config) {
        echo "<input type='text' name='$name'>";
    }
    

    然后在接收数据的脚本中:

    // Post - check required fields
    foreach ($fields as $name => $config) {
        if (empty($_POST[$name]) && $config["required"]) {
            die("Error! Field $name is mandatory!");
        }
    }
    

相关问题