使用jQuery for PHP获取div内容

时间:2012-06-11 21:42:17

标签: php jquery html

更新:哇这是有史以来最快的回复,并且在几分钟之内就有很多答案。惊人。好的,这就是我想要做的。 http://edvizenor.com/invoice33/

我想动态编辑这张发票,但当我点击顶部的蓝色框时,我想预览或在下一页上看到这个内容包含php var echo out。

这个蓝色框稍后将更改为底部的按钮,但是我正在使用它进行测试。

正如你所看到它调用ajax脚本但我需要将div的已编辑内容发送到php var,我可以在预览页面上回显它。如果我可以把它放在php var中,我会在下一页上用它来做它。那有意义吗?谢谢大家的快速回复。

旧帖子

是否可以使用jQuery获取div的内容,然后将它们放在PHP var中以通过GET或POST发送?

我可以使用jQuery获取div的内容:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

    <script>   
       $(document).ready(function() 
       {
           $("#MyButton").click(function()
           {
               var htmlStr = $("#MyDiv").html();
           });
        });
    </script>

但是如何将jQuery var放在php var中。我也需要通过BUTTON印刷机来做到这一点。这不包含在上面的代码中。我需要因为div文件是可更改的,当我点击UPDATE并通过PHP发送时,它需要有最新的内容。

10 个答案:

答案 0 :(得分:5)

根据你的情况, 您正在尝试将JavaScript变量发送到PHP。 唯一常见的方法是以JSON格式进行交换,

例如,假设我们有基本的文本编辑器

Jquery的:

$($document).ready(function(){

   $("#submit-button").click(function(){
       $.post('yourphpscript.php', {
             //this will be PHP var:   //this is JavaScript variable:   
             'text'                : $("#some_text_area").text()

        }, function(response){
            //To avoid JS Fatal Error: 
            try {
                var result = JSON.parse(response);
                //get back from PHP    
                if ( result.success){ alert('successfully changed') } 
               } catch(e){
              //response isn't JSON
             }
         });

   }); 

});

PHP代码

<?php

/**
 * 
 * So we are processing that variable from JavaScript
 */
if ( isset($_POST['text']) ){
  //do smth, like save to database
}


/**
 * Well if you want to show "Success message"
 * that div or textarea successfully changed
 * you can send the result BACK to JavaScript via JSON  
 */

$some_array = array();
$some_aray['success'] = true;

die( json_encode($some_array) );

答案 1 :(得分:4)

您需要使用ajax将值发送到您的服务器。

var html = $('#myDiv').html();

$.ajax({
   type: 'POST',
   url: '/SomeUrl/MyResource.php',
   data: JSON.stringify({ text: html }),
   success: function(response)
   {
      alert('Ajax call successful!');
   }
});

答案 2 :(得分:4)

您可以使用hidden form fields并使用jQuery将隐藏字段的值设置为该值,因此当单击按钮并提交表单时,您的PHP可以将其拾取,就好像它是任何其他表单元素一样(使用$_POST)。或者,您可以使用AJAX向PHP页面发出异步请求。这可能更简单。这是一个例子:

$("#myButton").click(function() {
    var htmlStr = $('#myDiv').html();

    $.post("mypage.php", { inputHTML : htmlStr },
    function(data) {
        alert("Data returned from mypage.php: " + data);
    });
}

答案 3 :(得分:4)

你需要的是AJAX(见http://en.wikipedia.org/wiki/Ajax_(programming))

基本思想是通过例如javascript发送http请求。调用php脚本并等待响应。

使用普通的Javascript AJAX请求有点不方便,但由于您已经在使用jQuery,因此您可以使用此库。有关完整概述,请参阅http://api.jquery.com/jQuery.ajax/

客户端的代码是这样的:

$.ajax({
    url:'http://example.com/script.php',
    data:'var=' + $('#myDiv').html(),
    type:'GET'
    success:function(response) {
        console.log(response) // Your response
    },
    error:function(error) {
        console.log(error) // No successful request
    }
});

在你的script.php中你可以这样做:

$var = $_GET['var'];

// Do some processing...

echo 'response';

并在您的javascript控制台中会出现字符串response。 在现代基于ajax的应用程序中,发送和接收数据的最佳实践方式是JSON

因此,要在请求和响应中处理更大的数据集,您可以执行以下操作:

$.ajax({
    url:'http://example.com/script.php',
    data:{
        var:$('#myDiv').html()
    },
    type:'GET'
    success:function(response) {
        console.log(response) // Your response
    },
    error:function(error) {
        console.log(error) // No successful request
    }
});

在您的PHP代码中,您可以使用$someArray = json_decode($_GET['var'])来解码PHP的JSON(它将返回一个关联数组)和$jsonString = json_encode($someArray)来将数组编码为JSON字符串,您可以返回并处理它作为javascript中的常规JSON。

我希望能帮到你。

答案 4 :(得分:2)

是的,可能

<script type="text/javascript">
$(document).ready(function(){
  $('#MyButton').click(function(){
   $.post('sendinfo.php',
    {
     data: $('#data').html()
    },
    function(response){
     alert('Successfully');
    });
  });
 });
</script>

<div id="data">Here is some data</div>

答案 5 :(得分:1)

使用ajax将值发送到php(服务器)..这是ajax的一个很好的教程,使用jquery http://www.w3schools.com/jquery/jquery_ajax.asp

答案 6 :(得分:1)

您应该使用Ajax发送变量。

$.ajax({
   url:'whateverUrl.php',
   type:'GET',
   data:{
       html : htmlStr
   }
});

答案 7 :(得分:1)

使用AJAX:

$("#MyButton").click(function() {
    var htmlStr = $("#MyDiv").html();

    $.ajax({
      url: "script.php",
      type: "POST",
      data: {htmlStr : htmlStr},
      success: function(returnedData) {
         //do something
      }
    });

});

答案 8 :(得分:1)

下面的内容应该有效。

了解详情:http://api.jquery.com/jQuery.post/

$("#YourButton").click(function(e){
    e.preventDefault();
    var htmlStr = $("#YourDiv").html();
    $.post(
        url: 'YourPHP.php',
        data: '{"htmlStr" : "'+htmlStr+'"}',
        success: function(){
            alert("Success!");
        }
    );  
});

答案 9 :(得分:0)

通过POST或GET将数据通过XmlHttpRequest(“ajax”)发送到您的php页面。