2
我試圖使兩個字段在從數據庫生成的項目被「選定」後自動填充。我不確定我犯了什麼錯誤。我也使用了螢火蟲,但沒有顯示任何錯誤訊息。從下拉菜單中選擇一個項目後,它不會填充。請幫助我,讓我知道我做錯了什麼。根據用ajax選擇的值填充多個字段
下面是腳本:
<script type="text/javascript" language="javascript">
$(function() {
$('#description').bind('input', function() {
$(this).val() // get value
$.ajax({
type: 'POST',
url: 'orderAuto.php',
data: {
url: $('#description').val()
},
dataType: 'json',
success: function (data) //on recieve of reply
{
var skuId = data[0];
var unitPrice = data[1];
$('#sku_1').val(skuId);
$('#uPrice_1').val(unitPrice);
}
});
});
});
</script>
這裏是我的形式從數據庫字段和部分:
<form name="form" method="get">
<table width="70%" border="5" align="center"><tr>
<th scope="row">Item Name</th>
<th scope="row">Item SKU</th>
<th scope="row">Quantity</th>
<th scope="row">Special Note</th>
<th scope="row">Unit Price</th>
<th scope="row">Total Price</th>
</tr>
<tr>
<th scope="row">
<?php
include('connect.php');
$result = mysqli_query("SELECT description FROM products")
or die(mysqli_error());
print '<select name="description" id="description" value="description">';
print '<option value="" disabled selected>Please Select A Product</option>';
while ($info = mysqli_fetch_array($result))
{
$p = $info["description"];
$p = htmlspecialchars($p);
printf('<option value="%s">%s</option>', $p, $p);
}
print '</select>';
?>
</th>
<th scope="row"><input name="sku_1" id="sku_1" readonly /></th>
<th scope="row"><input name="qty_1" /></th>
<th scope="row"><input name="note_1" /></th>
<th scope="row"><input name="uPrice_1" id="uPrice_1" readonly /></th>
<th scope="row"><input name="tPrice_1" readonly /></th>
</tr>
</table>
<input type="submit"/>
</form>
這裏是orderAuto.php:
<?php
include('connect.php');
$p = $_POST['description'];
$result = mysqli_query("SELECT sku_id, unit_price FROM products WHERE description= '".$p."'");
$array = mysqli_fetch_array($result);
echo json_encode($array);
?>
'網址:$( '#說明')VAL()'應該是'說明:$( '#說明')VAL()' – 2014-11-02 01:39:46
你不應該使用。改變()而不是.bind()?這也是錯的,試試這個http://api.jquery.com/change/ – Prashank 2014-11-02 01:39:49
@Prashank,我不打算進入,但'.bind()'現在應該是'.on()'。 ''input''可能是正確的,因爲這是一個自動填充框。如果不是,那麼它肯定會是「改變」。 – 2014-11-02 01:44:45