在值中使用单引号时出错,并且在数据表中不使用单引号时完成

时间:2018-11-15 06:24:34

标签: php jquery ajax

我正尝试使用以下代码使用ajax对该文件进行调用

var text = '<?php echo urlencode("hello world"); ?>';

var dataTable = $("#datatable-pan").DataTable({
  "ordering": false,
  "searching": false,
  "bProcessing": true,
  "serverSide": true,
  "ajax":{
    url :'my_response.php?text='+text, // json datasource
    type: "POST",  // type of method  ,GET/POST/DELETE
    error: function(){
      $("#employee_grid_processing").css("display","none");
    }
  },
});

这很好,但是如果我将var text的值更改为

var text = '<?php echo urlencode("hello 'world'"); ?>';

它不会继续并且不会调用文件 它显示类似xhr错误

2 个答案:

答案 0 :(得分:1)

JS:

var text = encodeURIComponent('<?php echo urlencode("hello world"); ?>');

PHP:

$code = urldecode( $_POST['text']);

最后一个字符串:

var text = '<?php echo urlencode("hello \'world\'"); ?>';

答案 1 :(得分:0)

  

这很好,但是如果我将var text的值更改为

var text = '<?php echo urlencode("hello 'world'"); ?>';

  

它没有继续并且没有调用文件,它显示类似xhr错误

它不能那样工作。由于您的php脚本用单引号引起来,因此在语句中找到的下一个单引号将被视为指令的末尾,所有其他字符将被视为意外字符,尽管可能会引发SyntaxError

如果world是变量,并且要显示其值,可以执行以下操作:

var text = '<?php echo urlencode("hello $world"); ?>';

var text = '<?php echo urlencode("hello ".$world); ?>';

这将在JavaScript脚本中使用php起作用。您还可以使用\通过以下方式转义引号:

var text = '<?php echo urlencode("hello \'world\'"); ?>';在这里,单引号将被视为要编码的字符串的一部分,而不是限制符