亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery 創建的字段不發送 POST 數據到 PHP

jQuery 創建的字段不發送 POST 數據到 PHP

大話西游666 2023-12-04 17:15:50
我的代碼沒有從表單中 jQuery 創建的字段獲取任何發布數據。我注釋掉了很多代碼以查看到底發生了什么,但我的 $_POST 只接收在 html 中手動設置的字段。頁面上顯示 jQuery 創建的字段并允許我輸入數據。所以我不明白為什么在我的 php 代碼中提交后沒有收到任何發布數據。有沒有辦法捕獲這些字段中的數據并在提交之前保存它們?      <?php    session_start();    require_once "pdo.php";    // Demand a GET parameter    if ( ! isset($_SESSION['user_id']) || strlen($_SESSION['user_id']) < 1  ) {        die('ACCESS DENIED');    } else {        $username = $_SESSION['who'];        $user_id = $_SESSION['user_id'];    }    if ( isset($_POST['cancel'] ) ) {        // Redirect the browser to game.php        unset($_SESSION['first_name']);        unset($_SESSION['last_name']);        unset($_SESSION['email']);        unset($_SESSION['headline']);        unset($_SESSION['summary']);        header("Location: index.php?name=".urlencode($_SESSION['who']));        return;    }    if ( isset($_POST['clear']) ) {        $first_name = '';        $last_name = '';        $email = '';        $headline = '';        $summary = '';        unset($_POST);    }    if ( isset($_POST['headline']) && isset($_POST['summary']) && isset($_POST['email'])         && isset($_POST['first_name']) && isset($_POST['last_name'])) {        //$first_name = $_POST['first_name'];        $email = $_POST['email'];        //$headline = $_POST['headline'];        $findme = "@";        $pos = strpos($email, $findme);        if ( strlen($_POST['headline']) < 1 || strlen($_POST['last_name']) < 1                 || strlen($_POST['first_name']) < 1 || strlen($_POST['email']) < 1                || strlen($_POST['summary']) < 1){            $_SESSION['error'] = "All Fields Are Required";            header("Location: add.php?name=".urlencode($_SESSION['who']));            return;        } 
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

問題是,由于您是動態添加字段,因此 DOM 不知道它們存在。


您所要做的就是撥打電話,form.serialize()以便從表單字段中獲取所有數據。


我創建了一個小型工作示例,以便您可以了解應該做什么:


$(document).ready(function() {

  var form = $('form');

  var fields = $('#fields');

  

  var add_button = $('#add');

  add_button.click(function(event) {

    console.log('Add a new field');

    

    // Notice I'm using backtick instead of quotes

    // It's easier to read and add data dinamically

    fields.append(`

      <div>

        <label for="field_${count}">Field #${count}</label><br />

        <input type="text" name="field_${count}" id="field_${count}" />

      </div>

    `);

    

    count++;

  });

  

  var count = 1;

  var submit_button = $('#submit');

  submit_button.click(function(event) {

    event.preventDefault();

    

    // Executes an AJAX's POST request

    $.post(

    

      // replace with the URL that will process the POST request

      'https://jsonplaceholder.typicode.com/posts',

      

      // here is where the magic happens

      // form.serialize get data from all fields

      // in your form object and submit them via AJAX

      form.serialize(),

      

      // Here you process the server's response

      function(data) {

        // do something with your data

        console.log(data);

      }

    );

  });

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form id="form" method="post">

  <div>

    <input type="button" id="add" value="Add" />

  </div>

  <div id="fields">

    <div>

      <label for="first_name">First Name</label><br />

      <input type="text" name="first_name" id="first_name" />

    </div>

    <div>

      <label for="first_name">Last Name</label><br />

      <input type="text" name="last_name" id="last_name" />

    </div>

  </div>

  <div>

    <input type="submit" name="submit" id="submit" value="Submit" />

  </div>

</form>


查看完整回答
反對 回復 2023-12-04
  • 1 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號