Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用相同名称的元素创建Ajax表单帖子?_Javascript_Php_Jquery_Ajax_Cordova - Fatal编程技术网

Javascript 如何使用相同名称的元素创建Ajax表单帖子?

Javascript 如何使用相同名称的元素创建Ajax表单帖子?,javascript,php,jquery,ajax,cordova,Javascript,Php,Jquery,Ajax,Cordova,因此,我的表单的一部分具有相同的“Name”值,该值将存储为数组 我试图做的是将这些值发送到AJAX中,然后发送到PHP以更新我的数据库 这里的问题是,我不确定如何将相同的输入名称值发送到AJAX中,并允许我的PHP访问这些值 代码如下所示 编辑:注意,我正在构建一个phonegap应用程序,因此无法直接将表单发送到我的php脚本 编辑2:添加了我的php脚本,解释如何处理信息 HTML: PHP: 在发布'pref_subject'的值之前,我将发布请求表中的其他值,以便发布'last_id'

因此,我的表单的一部分具有相同的“Name”值,该值将存储为数组

我试图做的是将这些值发送到AJAX中,然后发送到PHP以更新我的数据库

这里的问题是,我不确定如何将相同的输入名称值发送到AJAX中,并允许我的PHP访问这些值

代码如下所示

编辑:注意,我正在构建一个phonegap应用程序,因此无法直接将表单发送到我的php脚本

编辑2:添加了我的php脚本,解释如何处理信息

HTML:

PHP:

在发布'pref_subject'的值之前,我将发布请求表中的其他值,以便发布'last_id'

在获得最后一个id后,我将把“pref_主题”发布到第二个表中

    $connection = mysqli_connect($servername, $username, $password, $dbname);

  // Check connection
  if ($connection->connect_error) {
    die("Connection failed: " . $connection->connect_error);
  }

  $sd_given_name = addslashes($_POST["sd_given_name"]);
  $sd_family_name = addslashes($_POST["sd_family_name"]);
  $sd_email = $_POST["sd_email"];
  $gender = $_POST["gender"];
  $pref_edu_level = $_POST["pref_edu_level"];
  $pref_area = $_POST["pref_area"];
  $estate = $_POST["estate"];
  $requestPrice = $_POST["requestPrice"];
  $lesson_hrs = $_POST["lesson_hrs"];
  $lesson_amt = $_POST["lesson_amt"];

  $request_id;
  $pref_subject = $_POST["pref_subject"];

  $newRequest = "INSERT INTO Request (SD_Given_Name, SD_Family_Name, SD_Email, Gender, 
                               Pref_Edu_Level_ID, Pref_Area_ID, Estate, 
                               Request_Price, Lesson_Hrs, Lesson_Amt) 
          VALUES ('$sd_given_name', '$sd_family_name', '$sd_email', '$gender', 
                   $pref_edu_level, $pref_area, '$estate',
                   $requestPrice, $lesson_hrs, $lesson_amt)";



  if ($connection->query($newRequest) === TRUE) {
    $request_id = $connection->insert_id;
    //echo "New record created successfully. Last inserted ID is: " + $last_id;
  } 

  else {
    echo "Error: " . $newRequest . "<br>" . $connection->error;
  }

  for ($i = 0; $i < count($pref_subject); $i++) {
    if ($pref_subject[$i] > 0) {
      $addSubject = "INSERT INTO Request_Subject (Request_ID, Subject_ID)
      VALUES ($request_id, $pref_subject[$i])";

      $sendSubject = ($connection->query($addSubject));

      if ($sendSubject === FALSE) {
        echo "Error: " . $addSubject . "<br>" . $connection->error;
      }
    }
  }

  $connection->close();
$connection=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果($connection->connect\u错误){
die(“连接失败:”.$Connection->connect\u错误);
}
$sd_given_name=addslashes($_POST[“sd_given_name”]);
$sd_family_name=addslashes($_POST[“sd_family_name]”);
$sd_email=$_POST[“sd_email”];
$gender=$_POST[“gender”];
$pref_edu_level=$_POST[“pref_edu level”];
$pref_area=$_POST[“pref_area”];
$estate=$_POST[“estate”];
$requestPrice=$_POST[“requestPrice”];
$lesson\u hrs=$\u POST[“lesson\u hrs”];
$lessure\u amt=$\u POST[“lessure\u amt”];
$request_id;
$pref_subject=$_POST[“pref_subject”];
$newRequest=“在请求中插入(SD\u姓名、SD\u姓氏、SD\u电子邮件、性别、,
优先教育级别ID、优先地区ID、地产、,
申请价格、课时、课时金额)
值(“$sd\U给定名称”、“$sd\U家族名称”、“$sd\U电子邮件”、“$SEXT”,
$pref_edu_level、$pref_area、$estate',
$requestPrice,$lesson_hrs,$lesson_amt)”;
if($connection->query($newRequest)==TRUE){
$request\u id=$connection->insert\u id;
//echo“已成功创建新记录。上次插入的ID为:“+$Last\u ID;
} 
否则{
echo“Error:”.$newRequest.“
”$connection->Error; } 对于($i=0;$i0){ $addSubject=“插入请求主题(请求ID,主题ID) 值($request_id,$pref_subject[$i])”; $sendSubject=($connection->query($addSubject)); 如果($sendSubject==FALSE){ echo“Error:.$addSubject.”
“$connection->Error; } } } $connection->close();
您可以将相同的输入名称值发送到AJAX

$("#submit").on("click", function(e){

    var form_data = $('#frm_id').serialize();
    $.ajax({
        type: "POST",
        url: serverURL + "/php/sendRequestProcess.php",
        data: form_data,
        dataType: "json",
        success: function(response){
            //data - response from server
        error: function (jqXHR, textStatus, errorThrown)
        {

        }
    });

});
表单_数据:可以是数组或名称-值对

success:当AJAX发布成功时调用回调函数

错误:当AJAX POST失败时调用回调函数


要处理JSON数据,请设置dataType=“JSON”

问题:为什么不将表单发送到PHP脚本?PHP运行,然后是标题('Location:)@曾斯坦编辑了这篇文章。我将把这段代码移植到一个phonegap应用程序,我不认为我可以直接访问php脚本
id的
应该是唯一的,你可以使用
pref_subject_1
等等。然后使用
选择器中的
名称
部分,而不是
id
(不带[])。您可以使用与此问题中相同的名称迭代thorogh元素@Ekim我尝试按照解决方案进行操作,但如何将pref_主题的数据存储在Ajax中?如何处理发送到php的信息?在php端,获取您的数据,如$u POST['sd_given_name']…和其他领域一样,做你想做的任何事情。嗨,谢谢。我设法使它起作用。尽管我可以问一下,我应该在成功和错误回调中添加什么。对ajax来说仍然是新的。好的,success您将从服务器获得响应,如果您得到任何错误,则在错误回调中显示警报。在php代码中,将json_编码作为成功响应放在客户端。
    $connection = mysqli_connect($servername, $username, $password, $dbname);

  // Check connection
  if ($connection->connect_error) {
    die("Connection failed: " . $connection->connect_error);
  }

  $sd_given_name = addslashes($_POST["sd_given_name"]);
  $sd_family_name = addslashes($_POST["sd_family_name"]);
  $sd_email = $_POST["sd_email"];
  $gender = $_POST["gender"];
  $pref_edu_level = $_POST["pref_edu_level"];
  $pref_area = $_POST["pref_area"];
  $estate = $_POST["estate"];
  $requestPrice = $_POST["requestPrice"];
  $lesson_hrs = $_POST["lesson_hrs"];
  $lesson_amt = $_POST["lesson_amt"];

  $request_id;
  $pref_subject = $_POST["pref_subject"];

  $newRequest = "INSERT INTO Request (SD_Given_Name, SD_Family_Name, SD_Email, Gender, 
                               Pref_Edu_Level_ID, Pref_Area_ID, Estate, 
                               Request_Price, Lesson_Hrs, Lesson_Amt) 
          VALUES ('$sd_given_name', '$sd_family_name', '$sd_email', '$gender', 
                   $pref_edu_level, $pref_area, '$estate',
                   $requestPrice, $lesson_hrs, $lesson_amt)";



  if ($connection->query($newRequest) === TRUE) {
    $request_id = $connection->insert_id;
    //echo "New record created successfully. Last inserted ID is: " + $last_id;
  } 

  else {
    echo "Error: " . $newRequest . "<br>" . $connection->error;
  }

  for ($i = 0; $i < count($pref_subject); $i++) {
    if ($pref_subject[$i] > 0) {
      $addSubject = "INSERT INTO Request_Subject (Request_ID, Subject_ID)
      VALUES ($request_id, $pref_subject[$i])";

      $sendSubject = ($connection->query($addSubject));

      if ($sendSubject === FALSE) {
        echo "Error: " . $addSubject . "<br>" . $connection->error;
      }
    }
  }

  $connection->close();
$("#submit").on("click", function(e){

    var form_data = $('#frm_id').serialize();
    $.ajax({
        type: "POST",
        url: serverURL + "/php/sendRequestProcess.php",
        data: form_data,
        dataType: "json",
        success: function(response){
            //data - response from server
        error: function (jqXHR, textStatus, errorThrown)
        {

        }
    });

});