簡體   English   中英

從jquery.ajax發布時,空$ _POST

[英]Empty $_POST when posting from jquery.ajax

我正在為學校的項目做一些添加,編輯和刪除操作。 add模塊中的代碼運行良好,實際上我已經添加了幾條記錄。 然后,出現了Edit模塊,起初它非常好,在add模塊中使用了類似的代碼。 但是,當我嘗試嘗試時,edit模塊中的帖子為空。

這是我的修改代碼:

$(".careersEdit").click(function () {
    var careersTableSelect = encodeURIComponent($("input:radio[name=careersTableSelect]:checked").val());
    if (careersTableSelect > 0) {
        $(".careersEditForm_load").show();
        $(".careersEditForm_error").hide();
        $(".careersEditForm").hide();
        var dataStringCareersEdit = 'careersTableSelect=' + careersTableSelect;
        $.ajax({
            type: "POST",
            url: "admin/careers/process/careersEditGet.php",
            data: dataStringCareersEdit,
            beforeSend: function(){
                alert(dataStringCareersEdit);
            },
            success: function () {
                setTimeout("", 5000);
                fetchResult();
            },
            error: function () {
                alert("Post Error");
            }
        });
        function fetchResult() {
            $.ajax({
                url: "admin/careers/process/careersEditGet.php",
                type: "POST",
                dataType: "json",
                success: function (result) {
                    if (result) {
                        $("input#careersEditPosition").val(result['position']);
                        $("input#careersEditCompany").val(result['company']);
                        $("input#careersEditLocation").val(result['location']);
                        $(".careersEditForm_load").hide();
                        $(".careersEditForm").show();
                    }
                },
                error: function () {
                    alert("Fetch Error");
                }
            });
        }
    } else {
        $(".careersEditForm").hide();
        $(".careersEditForm_load").hide();
        $(".careersEditForm_error").show();

    }
});

這是careersEditGet.php:

<?php
include('connect.php');
error_reporting(0);
$careersTableSelect = $_POST['careersTableSelect'];
//$careersTableSelect = $careersTableSelect + 1;
//echo $careersTableSelect;
$query = "SELECT * FROM atsdatabase.admincareers WHERE refNum ='" . $careersTableSelect . "' LIMIT 0 , 30";
$runQuery = mysql_query($query);
if (!$runQuery) {
    die('Could not enter data: ' . mysql_error());
}
$result = mysql_fetch_row($runQuery);
$array = array(
    'position' => "" . $result[1] . "",
    'company' => "" . $result[2] . "",
    'location' => "" . $result[3] . "",
);
echo json_encode($array);
mysql_close($connection);

?>

是的,代碼很丑/錯/胡扯,我對jquery東西還很陌生,大約3-4天。 對於那些有幫助的人,請糾正我。 我想學習這個jquery ajax的東西。 格拉西亞斯

也許嘗試以更常見的方式傳遞數據:

更改

data: dataStringCareersEdit,

data: { "careersTableSelect" : careersTableSelect },

一次調用ajax函數,

$.ajax({
    url: "admin/careers/process/careersEditGet.php",
    type: "POST",
    dataType: "json",
    data: {careersTableSelect: careersTableSelect},
    success: function (result) {
       if (result) {
          $("input#careersEditPosition").val(result.position);// json not array
          $("input#careersEditCompany").val(result.company);// json not array
          $("input#careersEditLocation").val(result.location);// json not array
          $(".careersEditForm_load").hide();
          $(".careersEditForm").show();
       }
    },
    error: function () {
       alert("Fetch Error");
    }
});

謝謝你們為回答這個問題所做的所有努力,我已經咨詢了一位Web開發人員,並教會了我如何在jquery中正確使用ajax。 ;)

當您從jQuery.Ajax中發布數據時,您做的根本是錯誤的。數據應該是一個對象,鍵應該是服務器端POST變量的名稱,稍后將在PHP中使用...示例:

data : {"server_side_vriable" : "Your_data_to_Post" }

......

var dataStringCareersEdit = 'careersTableSelect=' + careersTableSelect + "&careersTableSelect=" + careersTableSelect;
            $.ajax({
                type: "POST",
                url: "admin/careers/process/careersEditGet.php",
                data: {"careersTableSelect" : dataStringCareersEdit},
                beforeSend: alert(dataStringCareersEdit),
                success: function () {
                    alert("Fetching Result");
                    setTimeout("", 3000);
                    $.ajax({
                        url: "admin/careers/process/careersEditGet.php",
                        type: "GET",
                        dataType: "json",
                        success: function (result) {
                            if (result) {
                                $("input#careersEditPosition").val(result['position']);
                                $("input#careersEditCompany").val(result['company']);
                                $("input#careersEditLocation").val(result['location']);
                                $(".careersEditForm_load").hide();
                                $(".careersEditForm").show();
                            }
                        },
                        error: function () {
                            alert("Fetch Error");
                        }
                    });
                },
                error: function () {
                    alert("Post Error");
                }
            });

暫無
暫無

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

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