我有一个表单,在提交时调用php脚本来创建基于数据库查询的下拉列表。然后我需要能够在下拉列表中选择一个项目,点击一个按钮并填写一个填充结果的表格。
我的表单设置如下:使用一个提交按钮,以及另一个调用javascript函数的按钮类型。
<form name="searchForm" action="newCustomerSearchform.php" method="post">
<label><span></span> <input type="text" name="searchDB" /></label>
<button type="submit" name="btnSearch" value="Search" id="btnSearch" onclick="this.form.action">Search</button></label>
<?php
if (isset($_SESSION['names'])){
echo '<select id ="customerDD" name="customerDD" class="customers">';
foreach ($_SESSION['names'] as $option => $value) {
echo '<option value='.$value['ID'].'>'.$value['First_Name'].' '.$value['Surname'].'</option>';
}
echo '</select>';
}
if (isset($_SESSION['addnames'])){
echo 'set';
echo $_SESSION['addnames'];
}
?>
<button type="button" name="btnAdd" value="add" id="btnAdd" onclick=addcustomer();> Add</button>
</form>
第二个按钮调用:
<script type="text/javascript">
var temp = null;
function addcustomer()
{
temp = $("#customerDD").val();
$.post('newCustomerAdd.php', {variable: temp});
}
</script>
当我使用
测试时document.write(test);
它显示了我在下拉列表中选择的正确值。
newCustomerAdd.pp使用javascript函数中的变量包含对我的数据库的查询,然后将其保存在我用于在主页面上显示的会话变量中。
<?php
include 'newCustomer.php';
connect('final');
$temp = $_POST['temp'];
$temp = htmlspecialchars($temp); // stop HTML charkacters
$temp= mysql_real_escape_string($temp); //stop SQL injection
$query = "SELECT * FROM customer WHERE ID = '$temp";
$data = mysql_query($query) or die(mysql_error());
$Customers = array();
$colNames = array();
while($row = mysql_fetch_assoc($data)){// puts data from database into array, loops until no more
$Customers[] = $row;
}
$anymatches = mysql_num_rows($data); //checks if the querys returned any results
if ($anymatches != 0) {
$_SESSION['addnames']=$Customers;
$colNames = array_keys(reset($Customers));
}
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
}
header("location: newCustomer.php");
?>
然后我测试是否在表单中设置了此变量并回显变量,但没有生成任何内容。
我的Jquery似乎有问题,因为变量没有发布到php脚本。