下面的脚本可以正常工作,它结合了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函数:load()get()ajax()方法,将变量发送到服务器,但这似乎无法解决上述请求。

我知道PHP和JavaScript的交流方式不同,也许AJAX请求可以满足新要求,但我不确定如何做到。

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

最佳答案

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

your.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>


your.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答案,希望您能投票:)

09-26 01:35
查看更多