不使用POST将JavaScript变量发送到PHP

不使用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提交表单和不关闭模式的

我有一个HTML模式,其中包含一个带有select标记和输入文本的表单

选择选项是这样从数据库中提取的

<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'));
});