0

下面的脚本运行良好,它结合了 JavaScript 和 PHP。通过按下按钮,我得到它的值(buttonValue = 20)并且现有的项目列表(A,B,C)被替换为在$i <= 10(1,2,3…10)时停止的新列表:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    <?php $i = 1; while ($i <= 10): ?>
    $('<option><?php echo $i; ?></option>').appendTo('#Country select'); 
    <?php $i++; endwhile; ?>
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>

我想更改 PHP 循环,以便$i <= 10它显示$i <= $the_buttonValue(分配按钮值以显示数字 1、2、3…20)。

我试过 jQuery AJAX functions:load()get()方法ajax(),将变量发送到服务器,但这似乎并不能解决上述请求。

我知道 PHP 和 JavaScript 的两个方面的通信方式不同,也许 AJAX 请求可以使新要求工作,但我不确定如何。

任何使它按要求工作的提示,将不胜感激。

4

3 回答 3

2

对于这个特定问题,您不需要 php,但是如果由于某种原因必须使用它,那么您可以使用 jquery load() 函数,例如:

你的.html

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    $('#Country').load('your.php?value='+buttonValue+' #Country')
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>

你的.php

<div id="Country">
      <select id="City">

<?php 
    $val = $_GET['value']; //this will be your button value
    $i = 1;
    while (true)
    {
?>
        <option value="">
                    <?php echo $i++; if($i==$val) break; ?>
        </option>
<?php
    }
?>
      </select>
</div>

我的第一个 stackoverflow 答案,希望你能投票:)

于 2013-01-12T21:58:50.780 回答
0

我认为最简单的方法就是在提交按钮时将该信息推送到您的 Javascript 变量和 PHP 变量;然后基于该等效 PHP 变量的循环,因为尝试基于 javascript 值设置 PHP 变量和函数可能会使发布 AJAX 数据和获取 JSON 响应更加困难。

您也可以在 javascript 中执行该循环,但这完全取决于您的偏好。将 javascript 变量推送到 PHP 变量中是很困难的,因为 PHP 总是在服务器端处理,而 javascript 是在客户端执行的。

用javascript做所有事情的一个例子是;代替

<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    var i = 1;
    while(i <= buttonValue){
    $('<option>' + i + '</option>').appendTo('#Country select'); 
    i++;
    }
  });
});
</script>
于 2013-01-12T21:24:16.250 回答
0

你根本不需要 PHP:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    for (var i = 0; i < buttonValue; i++) {
        $('<option>' + i + '</option>').appendTo('#Country select'); 
    }
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>
于 2013-01-12T21:27:45.483 回答