Me sale este extraño error. Resulta que es mi código PHP que está incrustado en jquery.

<?php $user=isset($_GET['u']) ? $_GET['u'] : NULL; //This returns a numeric value ?> 

<script>
  $("button[name='send_mail']").on('click',function(){
  var user = '<?php echo $user;?>'; // <----The Problem
  $.ajax({
    type:"POST",
    url:"ajax/scripts/user_mail.php?u="+user,
    success: function(data){
        alert(data);
        },
    });
  });
</script>

Intenté con comillas simples y dobles. Este código de pieza funciona en algunos de mis archivos y no funciona en otros.

-2
Rust 10 dic. 2015 a las 10:40

3 respuestas

La mejor respuesta

Esto funciona:

<?php $user=isset($_GET['u']) ? $_GET['u'] : NULL;?>
<span id="user_id_span" style="display:none;"><?php echo $user; ?></span>

<script> 
  var user = $('#user_id_span').text();
</script>

Si su salida es más que una simple cadena o número o una sola línea, esto no funcionaría.

-1
Rust 10 dic. 2015 a las 09:09
<?php
    $user = (!empty($_GET['u']))?intval($_GET['u']):0;
?>
<script language="JavaScript">
    console.log("User: " + <?php echo $user; ?>);
    // try to debug what is really in the variable
    var user = <?php echo $user; ?>;
    // same as <?= $user; ?>
</script>
-1
Jan 10 dic. 2015 a las 08:11

Tienes una coma falsa en esta parte de tu código:

success: function(data){
    alert(data);
    }, //<--- here
});

Debería ser solo:

success: function(data){
    alert(data);
    }
});
-1
Shadow Wizard is Ear For You 10 dic. 2015 a las 08:12
34196221