1

我在显示一些动态创建的数据并在 ajax 完成时显示提交的数据时遇到问题。

HTML - form.html

    <form name="myForm" id="myForm">
        <strong>Skills 1</strong>     
            <div>
                <select name="Skills[]" id="Skills">
                <optgroup label="Programming">
                   <option value="">-</option>
                   <option value="Javascript">Javascript</option>
                   <option value="C++">C++</option>
                   <option value="C#">C#</option>
                </optgroup>

                <optgroup label="Multimedia">
                   <option value="Adobe Flash MX">Adobe Flash MX</option>
                   <option value="Adobe Fireworks">Adobe Fireworks</option>
                   <option value="Adobe After Effects">Adobe After Effects</option>
                </optgroup>
                </select>
            </div>

            <div>
                <input type="text" name="SkillsNumber[]" id="SkillsNumber" placeholder="Number of year using" />
            </div>

            <div>
                <select name="SkillsGrade[]" id="SkillsGrade">
                  <option value="">Select your skills grade</option>
                  <option value="Noob">Noob</option>
                  <option value="Amateur">Amateur</option>
                  <option value="Professional">Professional</option>
                </select>
            </div>            
        </div>
    </form>
<div id="result-set"></div>

* 这个选择部分可以动态添加(最多3个)

jQuery

$(function(){
$("#myForm").submit(function(){
    var formData = $(this).serializeArray();
    console.log(formData);

    $.ajax({
        type: "POST",
        data: {
            theData: formData
        },
        url: "theresult.php",
        success: function(result){
            $("#result-set").ajaxComplete(function() {
                   $("#result-set").html(result);
               });
        }   
    }); 
    return false;
});

PHP - 结果.php

<?php
   $data = $_POST['theData'];
   $enc = json_encode($data, true);

   ...
   ....
   .....
?>

问题是我应该怎么做,如果我有 3 个选择(所以我有 3 个技能、3 个技能编号和 3 个技能等级)并在#result-set 上显示它。已经在这里开裂了。

抱歉英语不好。新手在这里... :)

4

2 回答 2

1

在表单上添加一个按钮,例如

<input type="button" value="submit" id="myBtn">

像这样更改您的代码

$("#myBtn").submit(function(){

像这样写你的成功函数

success: function(result){                
     $("#result-set").html(result);
 }   

如果您想将 json 数据用作 javascript 对象,请像这样设置您的 $.ajax 方法参数dataType: 'json'

于 2012-12-26T13:03:41.007 回答
1

用于parse_str获取您的数据:

PHP - 结果.php

<?php
    parse_str($_POST['theData'], $params);
    $Skills = $params['Skills[]']; // I am not sure about [] part, test it
    $SkillsGrade = $params['SkillsGrade[]'];   
    $SkillsNumber = $params['SkillsNumber[]'];   

    echo "Skills: $Skills<br />";
    echo "SkillsGrade: $SkillsGrade<br />";
    echo "SkillsNumber: $SkillsNumber<br />";

    exit;
?>

并添加dataType: "html"到您的 $.ajax() 定义中

于 2012-12-26T13:11:09.477 回答