我有一个选择列表,在使用javascript我得到所选值我希望这个选定的值通过php文件init.php,以便我可以在mysql查询中使用这些变量。 我的javascript代码如下:
$(document).ready(function(){
var e = document.getElementById("product");
var pro = e.options[e.selectedIndex].text;
alert(pro);
});
$('select').change(function(){
var e = document.getElementById("city");
var cit = e.options[e.selectedIndex].text;
alert(cit);
我使用ajax将变量发送到init.php。我的下面的ajax代码无效,任何人都可以告诉我们这段代码中的问题:
$.ajax({
url: 'init.php',
type: 'POST',
data: { x:'cit',y:'pro' },
success: function(data) {
console.log(data);
}
});
在init.php中我写了:
<?php
$var1 = $_POST['y'];
$var2 = $_POST['x'];
$result = "Select amount from ". _DB_PREFIX_ ."demo_detail where product = '". $var1 ."' and city = '" . $var2 . "' ";
//echo json_encode($result);
答案 0 :(得分:0)
您可以更改url
行以包含/以确保您相对于目录的根目录引用init.php
吗?
所以看起来应该是这样的:
$.ajax({
url: '/init.php',
type: 'POST',
data: { x:'cit',y:'pro' },
success: function(data) {
console.log(data);
}
});
我不能确切地说出来,但是AJAX可能会向错误的网址发出POST请求。
答案 1 :(得分:0)
您是否尝试在网址中传递绝对路径和相对路径。我的意思是 你尝试过使用:
url:'localhost:xxxx/myapp/init.php'
或
url:'/init.php'
答案 2 :(得分:0)
如果您将变量传递到Ajax中的data参数,则不必使用引号。
$.ajax({
url: 'init.php',
type: 'POST',
data: { x: cit, y: pro },
success: function(data) {
console.log(data);
}
});
答案 3 :(得分:0)
使用查询字符串。 HTML5的会话存储也可以为您提供帮助。
答案 4 :(得分:0)
尝试用以下内容替换脚本代码,看看它是否有所作为
$(document).ready(function(){
$('select').change(function(){
var e = document.getElementById("product");
var pro = e.options[e.selectedIndex].text;
alert(pro);
var e = document.getElementById("city");
var cit = e.options[e.selectedIndex].text;
alert(cit);
$.ajax({
type: 'POST',
url: 'init.php',
data: { x:'cit',y:'pro' },
success: function(data) {
console.log(data);
}
});
});
});