Ajax没有发送var到url php

时间:2013-12-29 10:30:27

标签: php ajax jquery

我正在尝试将变量发送到服务器但是url没有转到php文件..我做错了什么?是因为我没有使用提交按钮吗?这是我的代码..

    <table id="table">
    <?php for($i=0; $i<$totalbesin; $i++) { ?>
       <tr>
          <td class="td" id="<?php echo "name".$i?>"><?php echo $besin[$i]['n']?></td>
          <td class="td" id="<?php echo "kal".$i?>"><?php echo $besin[$i]['kal']?></td>
          <td class="td" id="<?php echo "pro".$i?>"><?php echo $besin[$i]['pro']?></td>
          <td class="td" id="<?php echo "kar".$i?>"><?php echo $besin[$i]['kar']?></td>
          <td class="td" id="<?php echo "yag".$i?>"><?php echo $besin[$i]['yag']?></td>
          <td class="ekle" id="yuk<?php echo $i?>">Ekle</td>
       </tr>

    <script type="text/javascript" >
    $(function() {
    $("#yuk<?php echo $i?>").click(function() 
    {
    var name = $("#<?php echo "name".$i?>").val();
    var kal = $("#<?php echo "kal".$i?>").val();
    var pro = $("#<?php echo "pro".$i?>").val();
    var kar = $("#<?php echo "kar".$i?>").val();
    var yag = $("#<?php echo "yag".$i?>").val();
    var dataString = '&name='+ name + '&kal=' + kal + '&pro=' + pro + '&kar=' + kar + '&yag=' + yag;

    $.ajax({
    type: "POST",
    url: "dietup.php",
    data: dataString,
    cache: false,
    success: function(html){
    $("span#sonuc").text("<?php echo $i?>");
    }
    });
    return false;
    }); });
    </script>
    <?php } ?>

    </table>

8 个答案:

答案 0 :(得分:0)

看看ajaxForm&amp; ajaxSubmit,否则你需要一个提交按钮。

http://malsup.com/jquery/form/

答案 1 :(得分:0)

试试这个

$.ajax({
  type: "POST",
  url: "dietup.php",
  data: {
    name: name,
    kal: kal,
    pro: pro
    //and so on
  },
  cache: false,
  success: function(html){
  $("span#sonuc").text("<?php echo $i?>");
  }
});

答案 2 :(得分:0)

使用此选项将值设置为变量:

   var name = $("#name<?php echo$i?>").val();
    var kal = $("#kal<?php echo $i?>").val();
    var pro = $("#pro<?php echo $i?>").val();
    var kar = $("#kar<?php echo $i?>").val();
    var yag = $("#yag<?php echo $i?>").val();

答案 3 :(得分:0)

在您的代码中,据我所知,您似乎正在尝试使用php为您的javscript变量赋值。

语法存在问题,您要将值分配给javscript变量。

请注意以下代码中的以下代码段:

var name = $("#<?php echo "name".$i?>").val();
var kal = $("#<?php echo "kal".$i?>").val();
var pro = $("#<?php echo "pro".$i?>").val();
var kar = $("#<?php echo "kar".$i?>").val();
var yag = $("#<?php echo "yag".$i?>").val();

有什么事似乎不对吗?

疑难杂症!!!!您正在使用双引号将值分配给您的jquery选择器以及正在终止双引号的php echo语句。

尝试使用jquery选择器的单引号和php echo语句的双引号,如下所示:

var name = $('#<?php echo "name".$i?>').val();

答案 4 :(得分:0)

首先,ajax参数数据必须是object,而不是url string。如果你想发送字符串url,请将url字符串添加到url,如下所示:

$.ajax({
    url: "dietup.php?&name='+ name + '&kal=' + kal + '&pro=' + pro + '&kar=' + kar + '&yag=' + yag;"
})

但这将是错误的方法

我已将您的脚本划分为两个逻辑组件。 第一:是php循环生成html表 第二:javascript函数,谁发送ajax请求

<table id="table">
<?php for($i=0; $i<$totalbesin; $i++) { ?>
   <tr rel="<?php echo $i ?>">
      <td class="td name" id="<?php echo "name".$i?>"><?php echo $besin[$i]['n']?></td>
      <td class="td kal" id="<?php echo "kal".$i?>"><?php echo $besin[$i]['kal']?></td>
      <td class="td pro" id="<?php echo "pro".$i?>"><?php echo $besin[$i]['pro']?></td>
      <td class="td kar" id="<?php echo "kar".$i?>"><?php echo $besin[$i]['kar']?></td>
      <td class="td yag" id="<?php echo "yag".$i?>"><?php echo $besin[$i]['yag']?></td>
      <td class="ekle" id="yuk<?php echo $i?>">Ekle</td>
   </tr>
 <?php } ?>
</table>

<script type="text/javascript" >
$(function() {
    $(".ekle").click(function() 
    {
        var parent = $(this).closest('tr');
        var data = {
            name: parent.find('.name').val(),
            kal: parent.find('.kal').val(),
            pro: parent.find('.pro').val(),
            kar: parent.find('.kar').val(),
            yag: parent.find('.yag').val()
        };

        $.ajax({
            type: "POST",
            url: "dietup.php",
            data: data,
            cache: false,
            success: function(html){
                 $("span#sonuc").text(parent.attr('rel'));
            }
        });

        return false;
    }); 
});
</script>

答案 5 :(得分:0)

我发现了问题..这是因为它没有从td获取数据,我尝试了getelementById但它也没有工作..然后我用了

var name = '<?php echo $besin[$i]['n']?>';

并将数据放入var这样的..现在它的工作原理..谢谢你的时间..如果我能从td获得数据会更好但是现在还可以.. :)

答案 6 :(得分:0)

你需要将val()改为text();像下面的“td”标签没有值标签

var name = $("#<?php echo "name".$i?>").text();
var kal = $("#<?php echo "kal".$i?>").text();
var pro = $("#<?php echo "pro".$i?>").text();
var kar = $("#<?php echo "kar".$i?>").text();
var yag = $("#<?php echo "yag".$i?>").text();

答案 7 :(得分:0)

我有一个类似的脚本,希望这能帮到你:

<script type="text/javascript">
$(function() {
    $("#yuk<?php echo $i?>").click(function(event) 
    {
        var name = $("#<?php echo "name".$i?>").text();
        var kal = $("#<?php echo "kal".$i?>").text();
        var pro = $("#<?php echo "pro".$i?>").text();
        var kar = $("#<?php echo "kar".$i?>").text();
        var yag = $("#<?php echo "yag".$i?>").text();
        var dataString = 'name='+ name + '&kal=' + kal + '&pro=' + pro + '&kar=' + kar + '&yag=' + yag;

        //Uncomment to check the querystring
        //alert("dietup.php?"+dataString);

        $.ajax({
            url:"dietup.php?"+dataString,
            type:'GET',
            dataType:'text',
            cache:false,
            success:function(data){
                alert (data);
            },
            error:function(jxhr){
                alert('Ops, error: '.jxhr.responseText);
        }
        }); //End Ajax
    }); //End Click Function
}); //End Root Function

这是dietup.php的例子:

<?
//Get the parameters
$name = $_GET['name'];

//Do and return what you need
echo "your name is: ". $name;

&GT;