我正在尝试使用AJAX从数据库填充<input />
,但是只能在<textarea>
或<span>
中进行数据测试。
我的AJAX代码
$('#part_number').on('change', function() {
var part_number = $(this).val();
$.ajax({
url: '<?PHP echo admin_url('admin-ajax.php'); ?>',
type: 'post',
data: { action: 'description', part_number: part_number },
success: function(data) {
$('#description').val( data );
}
});
});
我的输入字段
<input id="description" value="" />
functions.php
add_action('wp_ajax_description' , 'description'); //ajax parameter action
add_action('wp_ajax_nopriv_description','description');
function description(){
$part_number = $_POST['part_number']; //id
global $wpdb;
$stock = $wpdb->get_results("SELECT * FROM _cif_inventory_table WHERE part_number = '$part_number'");
foreach ( $stock as $item ) {
echo $item->Description;
}
die();
}
我在这里或Google都找不到任何东西
编辑,这是一个循环,所以有20行,但是唯一起作用的是第一行,我做错了什么?
<?PHP
for ($i = 1; $i <= 20; $i++){
?>
<div id="lines" class="row">
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><span id="row_number"><?PHP if ( $i < 10 ){ echo "0".$i;}else{echo $i;} ?></span></div>
<div class="col-sm-2" style="text-align:left;border:1px solid #808080">
<select id="part_number" style="border:0px;">
<option value="None Selected"></option>
<?PHP
$partNumbers = $wpdb->get_results("SELECT * FROM _cif_inventory_table;");
foreach ($partNumbers as $partNumber) {
echo '<option value="'.$partNumber->part_number.'">'.$partNumber->part_number.'</option>';
}
?>
</select>
</div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input size="5" maxlength="5" id="quantity" value="" /></div>
<div class="col-sm-6" style="text-align:left;border:1px solid #808080"><input size="75" id="description" value="" /></div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input id="unitPrice" value="" /></div>
<div class="col-sm-1" style="text-align:left;border:1px solid #808080"><input id="amount" value="" /></div>
</div><!-- end .row -->
<?PHP
}
?>
答案 0 :(得分:1)
您要填写输入的value属性,因此需要使用.val()
:
$('#description').val( data );