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