Jquery AJAX自定义表单不从PHP返回结果

Jquery AJAX自定义表单不从PHP返回结果,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我不喜欢表单中普通下拉选择器的外观,所以我决定用一些Jquery创建自己的下拉选择器版本,作为我自己的一个小学习项目 下面代码的目标是能够将各种选择框(即,cuisineSelect、locationSelect和priceSelect)中的文本提交到ajax.php,以便我可以进一步操作这些变量 我的问题是,出于某种奇怪的原因,ajax.php不会注册$\u POST变量,它告诉我我有一个未定义的索引 我用一些开发工具在IE9中进行了一些调试,它们至少显示了我认为可以将变量发送到ajax.ph

我不喜欢表单中普通下拉选择器的外观,所以我决定用一些Jquery创建自己的下拉选择器版本,作为我自己的一个小学习项目

下面代码的目标是能够将各种选择框(即,cuisineSelect、locationSelect和priceSelect)中的文本提交到ajax.php,以便我可以进一步操作这些变量

我的问题是,出于某种奇怪的原因,ajax.php不会注册$\u POST变量,它告诉我我有一个未定义的索引

我用一些开发工具在IE9中进行了一些调试,它们至少显示了我认为可以将变量发送到ajax.php,ajax.php返回一个变量。以下是截图

在实际项目中,用户可以单击选项项,文本将转移到选择器上,就像下拉选择器一样

这是我的密码:

HTML:

<div id="parentContainer" style="width:100%;">

    <div class="container"> 
        <div class="select" id="cuisineSelect">
        Cuisine
        </div>
        <div class="option" id="cuisineOption">
        <ul id="cuisineul">
            <li>Asian</li>
            <li>American</li>
            <li>Indian</li>
            <li>Fusion</li>
        </ul>
        </div>
    </div>

    <div class="container"> 
        <div class="select" id="locationSelect">
        Location
        </div>
        <div class="option" id="locationOption">
        <ul id="locationul">
            <li>Asian</li>
            <li>American</li>
            <li>Indian</li>
            <li>Fusion</li>
        </ul>
        </div>
    </div>

    <div class="container"> 
        <div class="select" id="priceSelect">
        Price
        </div>
        <div class="option" id="priceOption">
        <ul id="priceul">
            <li>Price Range</li>
            <li>Cheap ($5-$15)</li>
            <li>Medium ($16 - $20)</li>
            <li>Pricey ($21 - $35)</li>
            <li>Fine Dining ($35+)</li>
        </ul>
        </div>
    </div>

    <div class="container">
        <div class="select" id="searchButton" style="width:25px; height:20px;">
        <center><img align="center" src="images/sml_search.png" width="17" height="18" /></center>
        </div>
    </div>

</div>

<div id="result" style="z-index:10;">
result=show; 
<?php include "ajax.php"; ?>
</div>
PHP页面ajax.PHP

<?php

    //Search information
    //$cuisine = htmlspecialchars(trim($_GET['cuisine']));

    //$location = htmlspecialchars(trim($_POST['location']));
    //$price = htmlspecialchars(trim($_POST['price']));

    //echo $location;
    //echo $price;
    //$addClient  = "INSERT INTO clients (fname,lname) VALUES ('$fname','$lname')";
    //mysql_query($addClient) or die(mysql_error());

    //$value = $_POST['cuisine'];
    //$value2 = $_POST['val'];
    //echo "$value2";


    $cuisine = $_POST['cuisine'];
    echo $cuisine;

?>
非常感谢你的帮助

不需要在result div中写入包含ajax.php文件。请将result div保持为空并隐藏。 修改ajax调用,如下所示:

$.post('ajax.php', 'cuisine=' + $("#cuisineSelect").html(), function (data) { $("#result").html(data); $("#result").show(); }); 这将在结果“div”中显示单击的文本。变量数据被传递给回调函数以供进一步利用

要将
  • 转换为选择框,必须将div-cuisineOption中的值传递到ajax.php,以便php脚本可以根据这些值创建选择框


    很抱歉,我无法通过我当前的代理服务器访问屏幕截图,但是您是说注释掉的代码是不工作的部分,而未注释的代码是工作的部分吗?还是都不管用?都不管用。然而,我包含注释掉的代码只是为了显示我过去的尝试,以防它们更接近。对于3,我已经有了一个特殊的jquery脚本,当用户单击时,它的文本将传输到cuisineSelect div。所以我所需要做的就是从cuisineSelect提交文本。我也尝试过你的其他建议,但是没有一个有用:/谢谢!实际上,我在编辑你答案中的代码时犯了一个错误——我的错。非常感谢,解决方案非常有效。 $.post('ajax.php', 'cuisine=' + $("#cuisineSelect").html(), function (data) { $("#result").html(data); $("#result").show(); });