Jquery AJAX自定义表单不从PHP返回结果
我不喜欢表单中普通下拉选择器的外观,所以我决定用一些Jquery创建自己的下拉选择器版本,作为我自己的一个小学习项目 下面代码的目标是能够将各种选择框(即,cuisineSelect、locationSelect和priceSelect)中的文本提交到ajax.php,以便我可以进一步操作这些变量 我的问题是,出于某种奇怪的原因,ajax.php不会注册$\u POST变量,它告诉我我有一个未定义的索引 我用一些开发工具在IE9中进行了一些调试,它们至少显示了我认为可以将变量发送到ajax.php,ajax.php返回一个变量。以下是截图 在实际项目中,用户可以单击选项项,文本将转移到选择器上,就像下拉选择器一样 这是我的密码: HTML:Jquery AJAX自定义表单不从PHP返回结果,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我不喜欢表单中普通下拉选择器的外观,所以我决定用一些Jquery创建自己的下拉选择器版本,作为我自己的一个小学习项目 下面代码的目标是能够将各种选择框(即,cuisineSelect、locationSelect和priceSelect)中的文本提交到ajax.php,以便我可以进一步操作这些变量 我的问题是,出于某种奇怪的原因,ajax.php不会注册$\u POST变量,它告诉我我有一个未定义的索引 我用一些开发工具在IE9中进行了一些调试,它们至少显示了我认为可以将变量发送到ajax.ph
<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”中显示单击的文本。变量数据被传递给回调函数以供进一步利用
要将很抱歉,我无法通过我当前的代理服务器访问屏幕截图,但是您是说注释掉的代码是不工作的部分,而未注释的代码是工作的部分吗?还是都不管用?都不管用。然而,我包含注释掉的代码只是为了显示我过去的尝试,以防它们更接近。对于3,我已经有了一个特殊的jquery脚本,当用户单击时,它的文本将传输到cuisineSelect div。所以我所需要做的就是从cuisineSelect提交文本。我也尝试过你的其他建议,但是没有一个有用:/谢谢!实际上,我在编辑你答案中的代码时犯了一个错误——我的错。非常感谢,解决方案非常有效。 $.post('ajax.php', 'cuisine=' + $("#cuisineSelect").html(), function (data) { $("#result").html(data); $("#result").show(); });