繁体   English   中英

PHP数组结构错误

[英]PHP array wrong structure

我有一个收集用户数据的表单,当用户单击保存时,它使用ajax将数据传递给执行插入语句到数据库的php脚本。 当我调试脚本并查看来自ajax请求的变量时,php数组的结构在最后4个变量中的结构错误,在该变量中将值添加到变量名上,而不是像前3个变量一样。

是否有人对为什么会这样有任何建议? 以及我该如何解决?

在此处输入图片说明

units.php

<div class="modal fade" id="AddModal" tabindex="-1" role="dialog" aria-labelledby="AddModal" aria-hidden="true">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h3 class="modal-title" id="AddModal">Add Unit Code </h3>
              </div> <!--modal-header-->
              <div class="modal-body">

                  <form id="add-form" class="form-horizontal">
                    <fieldset>

                    <!-- Form Name -->
                    <!--<legend>Form Name</legend>-->

                    <!-- Text input-->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addUnitId">Unit Id</label>  
                      <div class="col-md-2">
                      <input name="addUnitId" class="form-control input-sm" id="addUnitId" required="" type="text" maxlength="6" placeholder="">

                      </div>
                    </div>


                    <!-- Select Basic -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addDivId"  >Div Id</label>
                      <div class="col-md-2">
                        <select name="addDivId" class="form-control" id="addDivId">
                            <option value=""></option>
                            <?php
                            // Populate the drop down select box from the database
                            $query1=mysql_query("select * from divisions where div_id <> '' ");
                            while($row=mysql_fetch_assoc($query1)){
                                $str = $row['div_id']
                            ?>
                            <option value="<?php echo str_pad($str,4,'37', STR_PAD_LEFT); ?>">
                            <?php 
                             echo str_pad($str,4,'37', STR_PAD_LEFT);
                             echo "&nbsp&nbsp;&nbsp;&nbsp;" ;
                             echo $row['long_desc'] ?>
                            </option>
                            <?php   
                                } // close while loop
                            ?>    
                        </select>
                      </div>
                    </div>

                    <!-- Select Basic -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addTitleOrg">Title Org</label>
                      <div class="col-md-4">
                        <select name="addTitleOrg" class="form-control" id="addTitleOrg">
                            <option value=""></option>
                            <?php
                            // Populate the drop down select box from the database
                            $query2=mysql_query("select l1l5, ltitl, stitl from tl2l5 where status='A' ");
                            while($row=mysql_fetch_assoc($query2)){
                            ?>
                            <option value="<?php echo $row['l1l5']; ?>">
                            <?php 
                             echo $row['l1l5'];
                             echo "&nbsp&nbsp;" ;
                             echo $row['ltitl'] ?>
                            </option>
                            <?php   
                                } // close while loop
                            ?>   
                        </select>
                      </div>
                    </div>

                    <!-- Text input-->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addShortDesc">Short Desc</label>  
                      <div class="col-md-2">
                      <input name="addShortDesc" class="form-control input-sm" id="addShortDesc"  disabled="disabled" type="text" placeholder="">
                      </div>
                    </div>


                    <!-- Text input -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addLongDesc">Long Desc</label>
                      <div class="col-md-4">                     
                        <input name="addLongDesc" class="form-control input-sm" id="addLongDesc" disabled="disabled" type="text" placeholder="" >
                      </div>
                    </div>

                    <!-- Text input -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addUnitDesc">Comments</label>
                      <div class="col-md-4">                     
                        <input name="addUnitDesc" class="form-control input-sm" id="addUnitDesc" maxlength="50">
                      </div>
                    </div>


                    <!-- Select Basic -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="addEnabled">Enabled</label>
                      <div class="col-md-2">
                        <select name="addEnabled" class="form-control" id="addEnabled">
                          <option value="Y">Y</option>
                          <option value="N">N</option>
                        </select>
                      </div>
                    </div>

                 </fieldset>
                </form>

               </div> <!--modal-body-->
              <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                <button type="button" id="saveAdd" name="saveAdd" class="btn btn-primary">Add</button>
              </div> <!--modal-footer-->
          </div> <!--modal-content-->
        </div> <!--modal-dialog-->
        </div> <!--modal-fade --> 

JavaScript文件

$('#saveAdd').on('click', function() {

    var data ={
         unit_id : $('#addUnitId').val(),
         div_id : $('#addDivId').val(),
         title_org : $('#addTitleOrg').val(),
         short_desc : $('#addShortDesc').val(),
         long_desc : $('#addLongDesc').val(),
         unit_desc : $('#addUnitDesc').val(),
         avail_ind : $('#addEnabled').val()
    };

    alert(data);

//    alert(unit_id + " " + div_id + " " + title_org + " " + short_desc + " " + long_desc + " " + unit_desc + " " + avail_ind);

    $.ajax({
           type: "POST",
           url: "test.php?cmd=add",
           data: data
    });
});

PHP文件

require_once ('config/config.php'); 
$conn = new PDO('mysql:host=' . DBHOST . '; dbname=' . DBNAME ,DBUSER,DBPASS);

$unit_id = $_REQUEST['unit_id'];
$div_id = $_REQUEST['div_id'];
$title_org = $_REQUEST['title_org'];
$short_desc = $_REQUEST['short_desc'];
$long_desc = $_REQUEST['long_desc'];
$unit_desc = $_REQUEST['unit_desc'];
$avail_ind = $_REQUEST['avail_ind'];

// PREPARE INSERT STATEMENT
$stmt = $conn->prepare("INSERT INTO units
(unit_id, div_id, title_org, short_desc, long_desc, unit_desc, avail_ind)  
VALUES ($unit_id','$div_id','$title_org','$short_desc','$long_desc','$unit_desc','$avail_ind')
WHERE NOT EXISTS (SELECT * FROM units WHERE unit_id = '$unit_id')");

更新:

@Sam,当我将$ _REQUEST更改为$ _POST时,数组为空,array(0)

在此处输入图片说明

当我使用$ _GET并通过脚本进行调试时,它仍然给我不正确的PHP数组结构

在此处输入图片说明

尝试这个:

var vdata=[];
$.each(data,function(k,v){
   var str=k+'='+v;
   vdata.push(str);});
   }
vdata=vdata.join("&");

并在您的ajax-post中:

data: vdata;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM