首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery AJAX表单不发布结果

jQuery AJAX表单不发布结果
EN

Stack Overflow用户
提问于 2014-01-03 15:47:56
回答 4查看 130关注 0票数 0

我在使用AJAX从数据库返回结果时遇到了问题。我试图回显$diskspace$price,这两个都是未定义的返回。

index.php

代码语言:javascript
复制
<form id="form" method="POST">
    Diskspace:
    <select id="Diskspace">
        <option value="0 AND 1">$0 - 1GB</option>
        <option value="1 AND 5">$1 - 5GB</option>
        <option value="5 AND 10">$5 - 10GB</option>     
    </select></br></br> 
    Price:
    <select id="Price">
        <option value="0 AND 5">$0 - $5</option>
        <option value="1 AND 5">$5 - $10</option>
        <option value="10 AND 20">$10 - $20</option>
        <option value="20 AND 40">$20 - $40</option>
        <option value="40 and 500">>$40</option>            
    </select></br></br> 
    <input type="submit" id="submit" value="enter">
</form> 
<div id="output"></div>

JS

代码语言:javascript
复制
$(document).ready(function(){

    $("div#output").hide();
    $("#submit").click(function(){
        $.post('join.php', {
            diskspace: $("#diskspace").val(),
            price: $("#price").val() 
        },
        function(data){
            $("div#output").html(data); 
            $("div#output").show();     
        }
        );
        return false;
    });     
});
</script>

join.php

代码语言:javascript
复制
<?php
if (isset($_POST['diskspace'])){
mysql_connect("localhost","root","") or die('Could not connect');
mysql_select_db("webhost") or die ('Could not find DB');

$diskspace = $_POST['diskspace'];
$price =$_POST['price'];

$query =  mysql_query("
    SELECT * FROM data WHERE Diskspace BETWEEN $diskspace
    AND Price BETWEEN $price 
");

$count = mysql_num_rows($query);

if ($count == 0){
        $output = "No such results, sorry.";
    }else{
        while($row = mysql_fetch_array($query)){
            $diskspace = $row['Diskspace'];
            $price = $row['Price'];
            $host = $row['Provider'];
            $output .= '<div>'.$host.'  '.$diskspace.'  '.$price.'</div>'; 
        }
}
echo $output;
}
?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-03 15:53:26

HTML元素的id为Diskspace,您正在寻找diskspace的一个元素。

以以下为例:

代码语言:javascript
复制
<select id="Diskspace">
    <option value="hello">hello</option>
</select>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    console.log( $('#diskspace').val() );
});
</script>

结果是未定义的,在新版本的jQuery中,如果找不到元素,它将不会通过ajax/post传递变量。

这同样适用于您的Price元素。

票数 4
EN

Stack Overflow用户

发布于 2014-01-03 16:06:39

您的选择id在jquery中是不一样的。像这样改变它:

代码语言:javascript
复制
 <form id="form" method="POST">
        Diskspace:
        <select id="diskspace">
            <option value="0 AND 1">$0 - 1GB</option>
            <option value="1 AND 5">$1 - 5GB</option>
            <option value="5 AND 10">$5 - 10GB</option>     
        </select></br></br> 
        Price:
        <select id="price">
            <option value="0 AND 5">$0 - $5</option>
            <option value="1 AND 5">$5 - $10</option>
            <option value="10 AND 20">$10 - $20</option>
            <option value="20 AND 40">$20 - $40</option>
            <option value="40 and 500">>$40</option>            
        </select></br></br> 
        <input type="submit" id="submit" value="enter">
    </form> 
    <div id="output"></div>
票数 1
EN

Stack Overflow用户

发布于 2014-01-03 16:13:06

取代:

代码语言:javascript
复制
diskspace: $("#diskspace").val(),

使用

代码语言:javascript
复制
diskspace: $("#Diskspace").val(),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20907467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档