发出AJAX POST请求时未定义的索引

问题描述 投票:0回答:1

我正在尝试通过AJAX将表单的内容传递给名为cateringResults.php的文件。但是,当尝试访问cateringResults.php上的数据时,出现了未定义的索引错误。任何想法为什么会这样?

这里是表格和AJAX请求:

<html>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<form id="myForm" onsubmit="return false;">
    <table class="tableStyle">
        <tr>
            <td class="cells"><label for="venueName">Venue Name:</label></td>
            <td class="cells">
                <select id="venueName" name="venueName" class="input" required>
                    <option value = "1">Central Plaza</option>
                    <option value = "2">Pacific Towers</option>
                </select>
            </td>
        </tr>
        <tr>
            <td class="cells"><label for="submit">Check Catering Grades:</label></td>
            <td class="cells"><input type="submit" id="submitBtn" class="btn" /></td>
        </tr>
    </table>
</form>

$('#submitBtn').click(function(){
    alert("hello");
    var ven = $('#venueName').val();
    alert(ven);
    $.ajax({
        url: "cateringResults.php",
        type: 'post',
        data: {'venue' : ven},
        success: function(msg) {
            alert('Email Sent');
            $("#cateringResultsDisplay").load('cateringResults.php');
        }               
    });
})

</script>
<div id="cateringResultsDisplay"></div>

提交时,“ hello”,ven和“已发送电子邮件”都被输出,使我认为AJAX请求是正确的。

这里是cateringResults.php中的php代码,它正在尝试访问表单数据。

<html>
<?php
$x = $_REQUEST['venue'];
echo $x;
if(isset($_POST['venue'])){
    echo '<p>yes</p>';
}
else{
    echo "not set";
}
?>

知道为什么我会收到此错误? cateringResults.php

的下一行出现错误
$x = $_REQUEST['venue'];
php jquery ajax forms post
1个回答
1
投票

问题是这样:

$("#cateringResultsDisplay").load('cateringResults.php');

您没有在此处将venue作为请求参数发送(或与此相关的任何请求参数),但是服务器端脚本希望发送它:

$x = $_REQUEST['venue'];

自然会导致未定义的索引错误。

© www.soinside.com 2019 - 2024. All rights reserved.