簡體   English   中英

jQuery表單數據未通過Ajax POST方法發送

[英]Jquery form data not sending through ajax POST method

我有一種通過ajax將數據發送到php的表單,非常簡單。 但是,當我提交表單時,數據不會被發送出去。

使用Javascript:

$(document).ready(function(e) {
    $('#update').submit(function(event) {
        event.preventDefault();
        var fd = new FormData($('#update')[0]);
        alert(fd);
        $.ajax({
            url:'func/update.php?id=<?php echo md5($result['id']);?>',
            processData: false,
            contentType: false,
            data: fd,
            type:'POST',
            dataType:"JSON",
            success:function(json){

            }
        });
    });
});

PHP:

if(empty($_POST)){
    echo 'No post data';
}else{
    echo 'data sent';
}
print_r($_POST);

php非常簡單,可以查看發生了什么。 通常,我會將數據附加到各個字段。

數據:{a:a,b:b,c:c} ...等等。

HTML:

<form id="updateStaff">
Profile Picture<br /><img id="pp_img_display" src="../images/<?php echo $result['pp'];?>" width="100px" /><br /><small>Upload a new image</small><br/><input onchange="uploadImage()" type="file" id="file" /><input type="hidden" id="pp_img" value="<?php echo $result['pp']; ?>" /><br/><small>upload .jpg .png .jpeg only</small><br /><div class="form_err" id="image_err"></div>
Name: <select id="prefix" required="required">
<option><?php echo $result['prefix']; ?></option>
<?php $pre = array('Mr','Mrs','Miss','Ms');
for($x = 0; $x < count($pre); $x++){
    if($pre[$x] != $result['prefix']){
        echo '<option>'.$pre[$x].'</option>';
    }
}?>
</select>&nbsp;
<input type="text" id="f_name" placeholder="First Name" value="<?php echo $result['f_name'];?>" required="required" />&nbsp;
<input type="text" id="l_name" placeholder="Last Name" value="<?php echo $result['l_name'];?>" required="required" /><br/>

Job Title: <input type="text" id="job" required="required" placeholder="Job Tilte" value="<?php echo $result['job_title']; ?>" />
<br/>
Years of Experience: <input type="number" id="xp" required="required" placeholder="1" value="<?php echo (int)$result['xp'];?>" />
<p><input type="submit" value="Update" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="Cancel" onclick="history.go(-1);"/></p>

</form>

我本以為formData將是一種更短的方法。

要發送,元素需要name屬性:

<input name="myInputSend" type="text" id="f_name" placeholder="First Name" value="<?php echo $result['f_name'];?>" required="required" />

將類似第一個答案的內容添加到項目中以將名稱前綴應用於部分視圖后,您可以按原樣發布它們。

附帶說明

如果您進入那些局部視圖中的可變長度列表,它就不再那么容易了。

  1. 您可能希望將前綴發送給控制器,以將新的htmlNamePrefixes正確添加到新的部分視圖中。
  2. 為了使發布在這些情況下變得容易,我創建了此幫助程序$ .fn()

helper函數將re-base排列丟失/添加的名稱索引,以便為parenting form每個partial視圖(即使局部視圖具有局部視圖)重新排列,以使帖子按原樣通過。 (對早期表示歉意,並弄亂了評論)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM