jQuery.ajax没有将值传递给php变量

时间:2013-12-09 02:13:55

标签: javascript

这是我的代码,用于将值从表单输入到javascript变量,并希望将其传输到php变量。但它不输出任何内容。

<script type="text/javascript">


function swapImage(id, primary, secondary,ide) {        


    src = document.getElementById(id).src;

    var allNone = true;

    var arr = new Array();

    arr = document.getElementById(ide);   

    if (src.match(primary)) {

            for(var i = arr.length - 1; i >= 0; i-=1) {                 

            if (arr.value != "none"){                                                                                                            

                        jQuery(function(){                                
                               jQuery.ajax({
                                    url: 'blog.php',
                                    type: 'POST',
                                    data: {
                                        jM:  $('#jumpMenu  option:selected').val(),
                                        jM2: $('#jumpMenu2 option:selected').val(),
                                        jM3: $('#jumpMenu3 option:selected').val(),
                                        jM4: $('#jumpMenu4 option:selected').val(),
                                        jM5: $('#jumpMenu5 option:selected').val(),
                                        jM6: $('#jumpMenu6 option:selected').val(),
                                        jM7: $('#jumpMenu7 option:selected').val(),
                                        jM8: $('#jumpMenu8 option:selected').val(),
                                        jM9: $('#jumpMenu9 option:selected').val(),
                                    },

                                    success: function(result){
                                        alert(result);

                                    },
                                    error: function(results) {
                                        console.log('Error:');
                                        console.log(results);
                                    }
                                });

                        });  

                        document.getElementById(id).src=secondary;
                        allNone = false;

                        break;                                                         
                    } 

            }
              if (allNone)
                {
                    alert("You must specify the item's size!");
                }

    } else {                                     
        location.href = 'blog.php';
    }

}

这是其他网页的php代码

Did you type "<?php 
   $jM1 = isset($_POST['jM'])? $_POST['jM'] : '' ; 
    $jM2 = isset($_POST['jM2'])? $_POST['jM2'] : '';
    $jM3 = isset($_POST['jM3'])? $_POST['jM3'] : '';
    $jM4 = isset($_POST['jM4'])? $_POST['jM4'] : '';
    $jM5 = isset($_POST['jM5'])? $_POST['jM5'] : '';
    $jM6 = isset($_POST['jM6'])? $_POST['jM6'] : '';
    $jM7 = isset($_POST['jM7'])? $_POST['jM7'] : '';
    $jM8 = isset($_POST['jM8'])? $_POST['jM8'] : '';
    $jM9 = isset($_POST['jM9'])? $_POST['jM9'] : '';

    echo $jM1."<br />".$jM2."<br />".$jM3; 
    ?>" for?

输出就像这样:&#34;你输入&#34;&#34;?&#34;。这已经更新..我可以从警报消息箱中获得结果但是我无法输出来自blog.php

这是html代码:

 <th height="464" scope="col"><img src="images/three.jpg" width="304" height="363" class = "tilt pic" />
        <table width="200" border="0" align="center">
          <tr>
            <th width="63">Price:</th>
            <th width="127"><?php echo $final_array[0][1]; ?></th>
          </tr>
          <tr>         
            <th>Size:</th>
            <form method="post" name="form" id="form">
            <th><select name="jumpMenu" id="jumpMenu" class="jM">
                <option value ="none">Enter Item Size</option>
                <option value ="6">Small</option>
                <option value ="8">Medium</option>
                <option value ="10">Large</option>
                <option value ="12">Extra Large</option>
                <option value ="14">XX Large</option>
              </select>
            </th>               
                <th><img                      
                    src="images/submit.gif" name="tadi"
                    id="tadi"
                    title="View Order"
                    onclick="swapImage(
                      'tadi',
                      'images/submit.gif',
                      'images/so.gif',
                      'jumpMenu'
                    )"
                  />           

          </th>

            </form>
          </tr>
      </table>


      </th>
      <th scope="col"><img src="images/two.jpg" width="304" height="363" class = "tilt pic" />
         <table width="200" border="0" align="center">
          <tr>
            <th width="63">Price:</th>
            <th width="127"> <?php echo $final_array[0][1]; ?></th>
          </tr>
          <tr>

            <th>Size:</th>
            <form method="post" name="form" id="form" action="blog.php">
            <th>  <select name="jumpMenu" id="jumpMenu2" class="jM2">
                <option value ="none">Enter Item Size</option>
                <option value ="6">Small</option>
                <option value ="8">Medium</option>
                <option value ="10">Large</option>
                <option value ="12">Extra Large</option>
                <option value ="14">XX Large</option>
              </select>
            </th>
            <th><img
                    id="change"
                    onclick="swapImage(
                      'change',
                      'images/submit.gif',
                      'images/so.gif',
                      'jumpMenu2'
                    )"                      
                    src="images/submit.gif"
                    title="View Order"
                  />  
            </th>

            </form>
          </tr>
      </table>
           </th>

2 个答案:

答案 0 :(得分:0)

我认为你的问题可能在你的选择器中(我还没有测试过)。您需要select元素的值,而不是选项的值。 <而不是

$('#jumpMenu6 option:selected').val()

尝试:

$('#jumpMenu6').val()

答案 1 :(得分:0)

看起来您正在尝试将同步行为与异步相结合。

首先,在提交数据后你想对数据做什么 - 我怀疑只是警告结果(); 第二,无论答案是什么 - 你应该在AJAX的成功回调函数中为它编写代码。

另外,我可能会弄错,但是从你的问题我明白你会去blog.php并期望看到输出变量?!这种情况永远不会发生,因为你只是通过访问浏览器中的blog.php url来传递$ _POST ['jm *']变量 - 这就是你使用AJAX来POST这些变量的原因。