我正在使用PHP和AJAX创建一个简单的在线预订系统。
目前的布局是: 每个预订都会抓取预设的项目列表,然后用户可以添加他们需要的其他项目。 为此,我设置了一个AJAX按钮,每次单击它时都会调用一个新的下拉列表。 (这意味着一个页面可以有1个额外的项目,甚至20个,具体取决于他们需要多少。)
一旦选择了其他项目,他们就可以提交表格,并被引导到一个确认页面,列出他们所选择的内容。
问题: 没有任何数据是从任何添加的下拉列表中传出的。
第1页的我的AJAX脚本和php代码是:
<script>
function changeIt()
{
$.ajax({
type: "POST",
url: "details.php"
}).done(function( result ) {
$("#msg1").append( "" +result);
});
}
</script>
<form name ="addequip" id="addequip" action="confirmbooking.php" method="post">
<input type='button' value="Add Item" onClick="changeIt()"/>
<div id="msg1"></div>
<input type='submit' value='submit'/>
details.php:
<?php
require_once("dbconn.php");
$sql = "SELECT REFERENCE, DESCRIPTION FROM descEquip";
$result = mysql_query($sql,$conn);
?>
<select name="equip">
<?php while ($row = mysql_fetch_array($result)) { ?>
<option value="<?php echo $row["REFERENCE"];?>"><?php echo $row["DESCRIPTION"];?></option><?php } ?>
</select>
最后我的确认页面是:
<?php $item = $_POST['equip']; ?>
<?php echo $item ?>
我不太确定我是否需要在AJAX脚本中添加一些东西才能使其按预期工作或者如果需要在details.php中更改某些内容? (我对AJAX很新)
我查看过上一个问题“passing form data to mySQL through AJAX”,但我无法让它发挥作用。
最后,对于其他列表(当需要超过1个项目时)我是否需要具有一个功能,指出每个装备列表具有不同的名称?像name="equip<?php echo $i ?> where $i = 1++;
任何提示或示例都将不胜感激, 感谢。
答案 0 :(得分:0)
永远不要假设所有内容都能按您的意愿运行 - 请检查代码中是否出现错误:
var jqxhr = $.ajax(
{
type: 'GET',
async: false,
url: 'details.php',
success: function(data, textStatus /* always 'success' */, jqXHR)
{
// ok if we are here it means that communication between browser and apache was successful
alert( 'on_ajax_success data=[' + data + '] status=[' + textStatus + ']' );
$("#msg1").innerHTML( result );
}
,
error: function(jqXHR, textStatus, errorThrown)
{
alert( 'ERROR: [operation failed]' );
}
});
此外 - 使用安装了Firebug的Firefox,以便您可以看到您的ajax查询/响应。