PHP和Javascript通信

时间:2015-04-28 10:00:48

标签: javascript php html ajax 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>

我创建了一个下拉菜单,用户可以在其中选择邮政编码。我想将用户选择的zipcode发送到php脚本。如何解决这个问题?

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

几乎就在那里。当前的问题是当我点击特定的邮政编码时。这是我得到的http://localhost:8888/92606而不是http://localhost:8888/getuv.php?param1=92606

的网址

4 个答案:

答案 0 :(得分:0)

<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;
?>

答案 1 :(得分:0)

你应该尝试前端的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 
            }
        });
}

答案 2 :(得分:0)

您需要在select标记中为名称指定'param1':

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>

答案 3 :(得分:0)

您忘记了name属性,而您使用的onchange方法只是打开一个新窗口,其中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>