如何仅在php变量不为空时通过Ajax发送该变量

如何仅在php变量不为空时通过Ajax发送该变量,php,jquery,html,ajax,Php,Jquery,Html,Ajax,因此,我有4个php变量,名为$description,$hscode,$from,$to,我想通过AJAX请求发送这些变量。我的不完整尝试如下: function searchFilter(page_num) { page_num = page_num?page_num:0; $.ajax({ type: 'POST', url: 'getData.php', data: { page : +page_num, "desc" : "&

因此,我有4个php变量,名为
$description,$hscode,$from,$to
,我想通过AJAX请求发送这些变量。我的不完整尝试如下:

function searchFilter(page_num) {
  page_num = page_num?page_num:0;

    $.ajax({
        type: 'POST',
        url: 'getData.php',
       data: { page : +page_num, "desc" : "<?php  print $description ?>","hscode" : "<?php  print $hscode ?>","from" : "<?php  print $from ?>","to" : "<?php $to ?>" },

        beforeSend: function () {
            $('.container-fluid').waitMe({
                   effect : 'stretch',
                   bg : 'rgba(255,255,255,0.7)'
                });
             },
        success: function (html) {
            $('#posts_content').html(html);
            $('.container-fluid').waitMe("hide");
        }
    });
}

首先,你可以检查你的变量是否设置,如果设置了,那么就打开;y将这些变量附加到ajax数据中。请尝试以下代码:

function searchFilter(page_num) {
    page_num = page_num?page_num:0;
    send_data = {};
    send_data.page = +page_num;
    <?php if (isset($description)): ?>
    send_data.desc = "<?php echo $description ?>";
    <?php endif; ?>
    <?php if (isset($hscode)): ?>
    send_data.hscode = "<?php echo $hscode ?>";
    <?php endif; ?>
    <?php if (isset($from)): ?>
    send_data.from = "<?php echo $from ?>";
    <?php endif; ?>
<?php if (isset($to)): ?>
send_data.to = "<?php echo $to ?>";
<?php endif; ?>

      $.ajax({
          type: 'POST',
          url: 'getData.php',
         data: send_data,

          beforeSend: function () {
              $('.container-fluid').waitMe({
                     effect : 'stretch',
                     bg : 'rgba(255,255,255,0.7)'
                  });
               },
          success: function (html) {
              $('#posts_content').html(html);
              $('.container-fluid').waitMe("hide");
          }
      });
}
函数搜索过滤器(页码){
页码=页码?页码:0;
发送_数据={};
send_data.page=+page_num;
发送_data.desc=“”;
发送_data.hscode=“”;
发送_data.from=“”;
发送_data.to=“”;
$.ajax({
键入:“POST”,
url:'getData.php',
数据:发送数据,
beforeSend:函数(){
$('.container fluid').waitMe({
效果:“拉伸”,
背景:“rgba(255255,0.7)”
});
},
成功:函数(html){
$('#posts_content').html(html);
$('.container fluid').waitMe(“隐藏”);
}
});
}

为了清晰起见,请用PHP组装数组,然后使用
json\u encode()
将其转换为json对象:

<?php
$php_data = [desc => $description, /* initialize other fields */];
?>
function searchFilter(page_num) {
  var data = <?php= json_encode($php_data) ?>;  /* dump as JSON object */
  data.page_num = page_num?page_num:0;          /* assign page_num field */
  $.ajax({
      type: 'POST',
      url: 'getData.php',
      data: data,                               /* pass object */

函数搜索筛选器(页码){
var data=;/*作为JSON对象转储*/
data.page_num=page_num?page_num:0;/*分配page_num字段*/
$.ajax({
键入:“POST”,
url:'getData.php',
数据:数据,/*传递对象*/

你能把你认为这不是重复的问题包括进来吗?它看起来非常类似于2.5秒的搜索,搜索结果是这样的:这个a实际上我搜索了太多,我的搜索参数不正确,如果我发现了主要的重复项,将删除这个问题。thanxxxsidenote:
数据中的语法:{…}
错误。参数不应包含
"
在它们周围。这是JavaScript-我认为这些php标记不适用于您,除非代码直接位于php文件中。我可能会将其移动到js文件中,并从一些dom元素中获取这些标记。
php
标记也可以在
javscript
@SebastianSulinski@B.Desai
php
标记是否在
.js文件?或者它们没有解析吗?Thax回答我会试试这些答案会回复soonNo@freedomn-m我知道
PHP
标签在
.js
文件中不起作用。但是在问题中OP已经在
js
中使用
PHP
标签,所以它确认OP使用
.PHP
filehmm工作正常,但我没有工作无论如何,这也是一个答案。请把这个问题投上一票,thanxx,我得到了我的答案
<?php
$php_data = [desc => $description, /* initialize other fields */];
?>
function searchFilter(page_num) {
  var data = <?php= json_encode($php_data) ?>;  /* dump as JSON object */
  data.page_num = page_num?page_num:0;          /* assign page_num field */
  $.ajax({
      type: 'POST',
      url: 'getData.php',
      data: data,                               /* pass object */