PHP 和 Javascript 通信

PHP and Javascript Communication

<form action="../">
<select onchange="window.open(this.options[this.selectedIndex].value,'_top')">
    <option value="">Choose a zipcode </option>
    <option value="92507">92507</option>
    <option value="30078">30078</option>
    <option value="92606">92606</option>
    <option value="30004">30004</option>
    <option value="32034">32034</option>
    <option value="37160">37160</option>
</select>
</form>

我创建了一个下拉菜单,用户可以在其中 select 邮政编码。我想将用户 select 编辑的邮政编码发送到 php 脚本。怎么办?

这是我目前所拥有的 done/understood。我需要在我的 php 文件中添加这行代码 $php_variable = $_GET['param1'];,它将获得 javascript 通过 url 发送的 param1 邮政编码。我可以在 javascript 中使用 ajax 函数并调用 post 来发送数据。我在正确的轨道上吗?我如何实际将用户的 selection 邮政编码保存到变量中。 ajax 也不应该在脚本中吗?我也可以将下拉菜单也放在脚本部分吗?

快到了。当前的问题是当我点击一个特定的邮政编码时。这是 url 我得到 http://localhost:8888/92606 而不是 http://localhost:8888/getuv.php?param1=92606

<form action="page.php" method="post">
<selecton name="zip" onchange="window.open(this.options[this.selectedIndex].value,'_top')">
<option value="">Choose a zipcode </option>
<option value="92507">92507</option>
<option value="30078">30078</option>
<option value="92606">92606</option>
<option value="30004">30004</option>
<option value="32034">32034</option>
<option value="37160">37160</option>
</select>
</form>

在 page.php 你应该像

这样编码
<?php
$code=$_POST['code'];
echo 'the zip code is'.$code;
?>

你应该尝试 jquery 前端方式。

<select id="myList">
    <option value="">Choose a zipcode </option>
    <option value="92507">92507</option>
    <option value="30078">30078</option>
    <option value="92606">92606</option>
    <option value="30004">30004</option>
    <option value="32034">32034</option>
    <option value="37160">37160</option>
</select>



$("#myList").change(function () {
    var myValue = $("#myList option:selected").val();
    sendToServer(myValue);
});
var sendToServer = function(myValue){
 // Use some ajax
    jQuery.ajax(
        type: "GET",
            url: 'http://host.com/' +'param1='+ myValue,
            beforeSend: function(){ 
                // do something
            },
            success: function(data){
                // success 
            }
        });
}

您需要将 'param1' 分配给 select 标签中的名称:

code:

<form action="../"> <select name = 'param1' onchange="window.open(this.options[this.selectedIndex].value,'_top')">
    <option value="">Choose a zipcode </option>
    <option value="92507">92507</option>
    <option value="30078">30078</option>
    <option value="92606">92606</option>
    <option value="30004">30004</option>
    <option value="32034">32034</option>
    <option value="37160">37160</option> 
</select> 
</form>

您忘记了 name 属性,您使用的 onchange 方法只是打开一个新的 window,param1 作为 url。

<form action="../">
    <select name="param1" onchange="this.form.submit()">
        <option value="">Choose a zipcode </option>
        <option value="92507">92507</option>
        <option value="30078">30078</option>
        <option value="92606">92606</option>
        <option value="30004">30004</option>
        <option value="32034">32034</option>
        <option value="37160">37160</option>
    </select>
</form>