不使用POST将JavaScript变量发送到PHP
我有一个HTML模式,其中包含一个带有select标记和输入文本的表单 选择选项是这样从数据库中提取的不使用POST将JavaScript变量发送到PHP,javascript,php,Javascript,Php,我有一个HTML模式,其中包含一个带有select标记和输入文本的表单 选择选项是这样从数据库中提取的 <select id="select_1" name="select_1"> <?php 然后,我的选择标签将包含两个选项A和B: <Option 1> A <Option 2> B 当我选择选项1A时,我想在输入文本中输出它的价格,这样它将包含500 当我选择选项2时,输入文本中将输出B1000 如何在不使用POST提交表单和不关闭模式的
<select id="select_1" name="select_1">
<?php
然后,我的选择标签将包含两个选项A和B:
<Option 1> A
<Option 2> B
当我选择选项1A时,我想在输入文本中输出它的价格,这样它将包含500
当我选择选项2时,输入文本中将输出B1000
如何在不使用POST提交表单和不关闭模式的情况下做到这一点?您可以使用javascript或Jquery和AJAX请求来实现这一点 使用Jquery的示例:
$(document).on('change','#select_1',function({
var value = $(this).value;
//DO your ajax request here and send the value inside the data
})
这就是我要做的
<select id="select_1" name="select_1">
<?php
$sql = $bdd->query('SELECT * FROM my_table;');
while($fetch = $sql->fetch(PDO::FETCH_ASSOC)){ ?>
<option id="opt-<?php echo $fetch['id']; ?>" data-price="<?php echo $fetch['price']; ?>" ><?php echo $fetch['name']; ?></option>
<?php } ?>
</select>
<input type="text" id="input_1">
实际上不需要AJAX,因为价格来自同一个表。您只需将其存储为数据属性,然后在选择更改时访问它
但是,请记住,这是选项的属性,而不是选择。因此,您需要获得所选的选项。我们可以使用sudo选择器执行此操作:selected
$'select_1'。在'change'上,函数{
$'input_1'.val$this.find'option:selected'。数据'price';
};
选择一个选项
A.
B
因为已经加载了值,所以使用和将其传递到选择选项值中 选择_1.onchange==>{ 输入_1.value=选择_1.value } A. B
您试图不重新加载页面,或者只是不使用POST方法?有GET方法,但听起来像是AJAX就是你想要的。在php中,将每个选项的值设置为其价格。在javascript中,在select上设置一个更改处理程序,用所选选项的值更新文本框。不需要ajax。您可以将价格打印为类似data price=的属性,然后使用javascript读取价格值并将其打印到输入字段中。这是多少美元。Php?最让人困惑的答案是你的。它是jQuery,它让生活变得更加简单。不,它不适合初学者,混合php和不清楚的伪javascript而不包括lib,这是非常误导的。在基本ecma js中:select.onchange=function{input1=select_1.value}仅此而已。除了它不是select_1的值,而是其他值。运行snipit它可以工作。这是通用的,而且更短。
$(document).on('change','#select_1',function({
var value = $(this).value;
//DO your ajax request here and send the value inside the data
})
<select id="select_1" name="select_1">
<?php
$sql = $bdd->query('SELECT * FROM my_table;');
while($fetch = $sql->fetch(PDO::FETCH_ASSOC)){ ?>
<option id="opt-<?php echo $fetch['id']; ?>" data-price="<?php echo $fetch['price']; ?>" ><?php echo $fetch['name']; ?></option>
<?php } ?>
</select>
<input type="text" id="input_1">
$('#select_1').on('change', function(){
$('#input_1').val($(this).find('option:selected').data('price'));
});