Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get div content with jQuery for PHP

Tags:

html

jquery

php

UPDATE: Wow that was the fastest response ever and so many answers in minutes of each other. Amazing. Ok here is what I am trying to do. http://edvizenor.com/invoice33/

I want to edit this invoice on the fly but when I hit the BLUE BOX at the top I want to preview or see this content on the next page contained php var echoed out.

This blue box will change later to be a button at the bottom but for testing I am using it.

As you see it calls the ajax script but I need the edited content of the div to be sent a php var to I can echo it on the preview page. If I can put it in a php var I do what I will with it on the next page. Does that make sense? Thanks guys for your quick responses.

OLD POST

Is it possible to get the contents of a div using jQuery and then place them in a PHP var to send via GET OR POST?

I can get the contents of the div with jQuery like this:

<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>

But how do I put the jQuery var in a php var. I need to do this by a BUTTON press too. This is not included in the code above. I need because the div file is changeable and when I hit UPDATE and send via PHP it needs to have the latest content.

like image 833
Papa De Beau Avatar asked Nov 28 '22 17:11

Papa De Beau


2 Answers

According to your situation, You are trying to send JavaScript variable to PHP. The only common way to do this is to exchange in JSON format,

for example, suppose we have basic text editor

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 code

<?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) );
like image 79
Yang Avatar answered Dec 06 '22 06:12

Yang


You'll need to use ajax to send the value to your server.

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

$.ajax({
   type: 'POST',
   url: '/SomeUrl/MyResource.php',
   data: JSON.stringify({ text: html }),
   success: function(response)
   {
      alert('Ajax call successful!');
   }
});
like image 24
Tejs Avatar answered Dec 06 '22 04:12

Tejs