【问题标题】:How to send or assign Jquery Variable value to php variable? [duplicate]如何将 Jquery 变量值发送或分配给 php 变量? [复制]
【发布时间】:2013-05-23 00:06:21
【问题描述】:

我想在用户单击时将 img src 获取到 php 变量,因此我使用 jquery 函数在用户单击该图像时获取 img src。下面的 jquery 用于获取 img src

$("img").click(function() {
    var ipath = $(this).attr('src');
})

现在我尝试了这样的方法来获取 php 变量的 ipath 值

$.ajax({ type:'POST', url: 'sample.php',
 dataType: 'HTML', data: dataString,
 success: function(data)
{
 } 
});
});

我不确定是否正确使用 Ajax 任何人都可以帮助使用 Ajax 功能来完成这项工作吗? 谢谢。

【问题讨论】:

  • 你在使用这个时遇到了什么错误?
  • 没有错误..我不知道如何将此值获取到 sample.php 中的 php 变量

标签: php javascript ajax jquery


【解决方案1】:

你应该在点击 img 时进行 ajax 调用,例如:

$(function (){
   $("#myimg").click(function() {
      $.ajax({
        type: "POST",
        url: "some.php",
        data: { param: $(this).attr('src'); }
      }).done(function( msg ) {
             alert( "Data Saved: " + msg );
     });
  });
}

html代码

<img src="http://yourimage.jpg" alt="image" id="myimg" />

some.php中使用

 echo $_POST['param'];

要获得价值,如果您使用type:GET,则应使用$_GET 获得价值。

【讨论】:

  • 我应该在这个脚本之前使用表单动作和方法吗?
  • 您不必这样做,因为没有提交表单,只有单击操作 :) 我已经使用 html 代码进行了编辑。当您使用 #myimg 时,如果您在 $("img") 上使用它只会影响 id="myimg" 的项目,它会影响您点击的每张图片。
  • 我正在单独使用 $(Img)。在我检查 sample.php 文件时单击它后显示错误错误抑制忽略通知:未定义索引:参数
  • 因为您只是将其称为 some.php 而没有 GET 参数,如果您将其称为 some.php?param=asdfasdf,则不会有任何通知。如果您使用 $_POST 则不要打开 some.php 只需查看 js 中警告的消息。如果 javascript 中没有错误,您的 ajax 请求将没有问题。这些确实是基础。 $(Img) 也不正确,应该是 $('img')
  • 感谢 Robert.its 说数据已保存,现在我如何访问 sample.php 中保存的数据
【解决方案2】:

请试试这个。希望它会有所帮助。

$("img").click(function() {
   var imgSrc = $(this).attr('src');

    jQuery.ajax({
            type: 'post',                    
            url:'somepage.php',            
            data:{"imgSrc" : imgSrc},
            dataType:'json',                
            success: function(rs)
            {
                alert("success");
            }
        });  
});

尝试在“somepage.php”上获取“imgSrc”作为“$_post[”imgSrc”]。

【讨论】:

    【解决方案3】:

    正如here 所写,你应该这样做:

    $.ajax({
        type : 'POST',
        url : 'sample.php',
        dataType : 'HTML',
        data : {
            param : 'value'
        },
        success : function(data) {
        }
    });
    });
    

    然后在 php 中,您的变量将位于 $_POST['param']

    【讨论】:

    • 成功回调函数正在工作,但在 sample.php 中我得到错误 注意:未定义索引:参数
    • 使用firebug+firephp调试这个
    【解决方案4】:

    这应该有帮助

    $("img").click(function() {
        jQuery.post("some.php",{param:$(this).attr('src')},function(data){
          console.log(data);
        },'html');
    });
    

    在一些.php中

    发送print_r($_POST); 以了解如何提取所需的信息/数据

    【讨论】:

    【解决方案5】:

    试试这样 -

    $('document').ready(function(){
        $("img").click(function() {
            var ipath = $(this).attr('src');
    
            var dataString = 'imagePath='+ipath;
            var sendRquest = $.ajax({
                type: 'POST',
                url: 'action.php',
                data: dataString
            });
    
            sendRquest.done(function(responseData) {
                // your code here
                alert(responseData);
            });
    
            sendRquest.fail(function(xmlhttprequest,textstatus,responseData) {
                // your code here
                alert('failed');
            });
    
            sendRquest.always(function(){
                // your code here
                alert('done');  
            });
    
        });
    
        $("img").click(function() {
            var ipath = $(this).attr('src');
            $('#divid').load('action.php?imagePath='+ipath);
    
            //if trigger required
            $('#divid').load('action.php?imagePath='+ipath, function() {
              alert('Load was performed.');
            });
        });
    });
    

    在 action.php 中

    <?php
       echo $_POST['imagePath'];
       // if you are using load function then
       echo $_GET['imagePath'];
    ?>
    

    【讨论】:

    • 警报与 、 等一起出现
    • 先看看你发送的是什么。尝试警报(ipath);在发送到 ajax 之前
    【解决方案6】:

    Ajax 函数

    <script type="text/javascript">
    $(function (){
        $("#img").click(function() {
        var src = $(this).attr('src');
        //OR// var src = $("#img").attr('src');
              $.ajax({
                type: "GET",
                url: "myfile.php",
                data: {imgsrc: src}
              }).done(function(data) {
                     alert(data);
             });
          });
    });
    </script>
    

    myfile.php

    <?php
    echo $_GET['imgsrc']; exit;
    ?>
    

    【讨论】:

    • sample.php 中出现错误 注意:未定义索引:imgsrc
    • 好像你没有正确改变ajax函数!我建议您复制和粘贴并请注意页面名称是 myfile.php 而不是 sample.php!试试这个,如果它仍然不起作用,让我知道我会尽力修复它! @raj
    • 在网址中我只给了 sample.php,即使它在 sample.php 中显示错误
    • @raj 我刚刚复制了我的工作脚本,这绝对有效!起初我也收到相同的错误消息,后来我发现我的错误是在 POST 中获取 imgsrc 而不是在 php 文件中获取 GET!请检查您的方法类型(GET/POST)和网址。 :)
    • 当我点击图片而不是在 sample.php 文件中时得到 imgsrc
    【解决方案7】:
    $("img").click(function() {
        var ipath = $(this).attr('src');
        $.ajax({ type:'POST', url: 'sample.php',
            dataType: 'HTML',
            data : {
                path: ipath 
            },
            success: function(data)
            {
    
            } 
        });//end of ajax
    
    })//end of click
    

    您可以在 php 脚本中以 $_POST['path'] 的形式获取此值

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签