0

更新:查看人们的建议,我意识到我应该不使用 AJAX。我决定更改加载函数,现在将 jquery 代码放入其中。但是,它仍然不起作用,因为没有元素显示为可见。这是新代码的样子。

<style>

.input_1 {display: none;}

.input_2 {display: none;}

.input_3 {display: none;}

</style>

<script type="text/javascript">

var numbers = $('#select_number').val();

function load(numbers) {    
if (numbers == 1) 
{$("input").hide();$(".input_1").show();} else 
if (numbers == 2) 
{$("input").hide();$(".input_1").show();$(".input_2").show();} else
if (numbers == 3) 
{$("input").hide();$(".input_1").show();$(".input_2").show();$(".input_3").show();}}

</script>

这是 select 标签现在的样子

<form id="form" action="" method="post">

<select id="select_number" onclick="load( numbers );" >

<option>1</option>
<option>2</option>
<option>3</option>

</select>

<input type="text" class="input_1"/>

<input type="text" class="input_2"/>

<input type="text" class="input_3"/>

</form>
4

4 回答 4

0
<select id="select_number" onclick="load('ajax_file.php', number_of_places );">

单击元素时“number_of_places”的值是多少?根据您的代码,它设置了一次并且永远不会更改。

一种解决方案是在发送之前获取值:

function load(thefile) {    
    var number = $('#select_number').val();
    $.get(thefile, {number : number});
}

或者获取函数调用的值

<select id="select_number" onclick="load('ajax_file.php', $('#select_number').val());">

此外,您没有对结果执行任何操作。也许你想要那样?但如果没有,您需要添加如下内容:

$.get(thefile, {number : number}, function (data){
        alert('The results are: ' + data);
        // do something with the results
    }
);

我希望这会有所帮助!

于 2012-08-06T02:03:08.470 回答
0

我会使用 jQuery 来完成这样的任务。jQuery 使得使用 AJAX 调用变得非常容易。

var myVar = $.get( "ajax_file.php",
                   "/*data to be sent to php file (optional)*/",
                   function(data) { /*whatever you want you do (or simply leave it empty if your php does what you need)*/ },
                  "text" /*data Type*/
                 );
于 2012-08-06T02:05:00.933 回答
0

Jquery 无法在服务器上远程执行,因此您的 Ajax 调用中的 jquery 将不会执行任何操作。这是 jquery 本质的基础,它不是服务器端语言。

 function load(thefile) {    
    var number_of_places = $('#select_number').val();
    $.get(thefile, {number : number_of_places}, function(numbers){
        if (numbers = 1) 
           {$("#input_1").show();} else 
        if (numbers = 2) 
           {$("#input_1").show();$("#input_2").show();} else
        if (numbers = 3) 
           {$("#input_1").show();$("#input_2").show();$("#input_3").show();}
    });
  )};

.php 文件:

  <?php

  if (isset($_GET['number']) === true && empty($_GET['number']) === false) {
       print $_GET['number'];
  }

  ?>
于 2012-08-06T02:10:44.580 回答
0

找到了解决方案。在 onclick 属性的加载函数中添加 $('#select_number').val() 并且它可以工作。感谢大家的帮助。

于 2012-08-06T02:38:24.523 回答