0

我有一个 ajax 脚本,可以将数据从联系表单发送到 php 脚本,但问题是我无法从“select”标签中获取值。我对 javascript/ajax 的了解有限,所以请原谅任何不恰当的描述或短语,因为我真的只能解释我是如何知道的。

HTML:

<form action="" method="POST" id="contact">
    <table>
        <tbody>
            <tr>
                <td><h2>First Name: </h2></td>
                <td><h2>Last Name: </td>
                <td><h2>Email Address: </td>
            </tr>
            <tr>
                <td><input type="text" name="first_name"></td>
                <td><input type="text" name="last_name"></td>
                <td><input type="text" name="email"></td>
            </tr>
            <tr>
                <td><h2>Street Address:</h2></td>
                <td><h2>What's Dirty?</h2></td>
            </tr>
            <tr>
                <td><input type="text" name="address"></td>
                <td>
                    <select name="job" form="contact">
                        <option value="house">House</option>
                        <option value="roof">Roof</option>
                        <option value="garage-shed">Garage/shed</option>
                        <option value="other">Other</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td><h2>Message: </h2></td>
            </tr>
        </tbody>
    </table>
    <textarea name="message" cols="80" rows="5"></textarea>

    <input type="submit" id="submit" name="send" value="Send!" class="send-button">

</form>

阿贾克斯

    <script type="text/javascript">
    $("#submit").click(function(e) {
        e.preventDefault();
var data_string = $("form#contact").serializeArray();
$.ajax({
    type: "POST",
    url: "database.php",
    data: data_string,
    success: function(){
    }
});
return false;
    });
    </script>

PHP

  print_r($_POST);
  $fname = $_POST['first_name'];
  $lname = $_POST['last_name'];
  $email = $_POST['email'];
  $address = $_POST['address'];
  $job = $_POST['job']; 
  $message = $_POST['message']; 

我从脚本中得到的是这个

[first_name] => John
[last_name] => Smith
[email] => j.smith@example.com
[address] => 1234 Jamestown Rd.

请记住,我对此很陌生,所以一个简单的错误对我来说并不是那么明显。

4

1 回答 1

1

我发现问题出在我的 html 中的一个神秘属性中。

HTML

<select name="job" form="contact">

是我代码中的活动扳手,我删除了

form="contact">

一切正常!

谢谢您的帮助!

于 2013-06-14T17:23:56.927 回答