Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax序列化不同于0的值_Php_Jquery_Ajax - Fatal编程技术网

Php Ajax序列化不同于0的值

Php Ajax序列化不同于0的值,php,jquery,ajax,Php,Jquery,Ajax,我有以下表格: <input type="text" class="Qty form-control input-sm" name="Qty" value="0"> <input type="text" class="Qty form-control input-sm" name="Qty" value="0"> <input type="text" class="Qty form-control input-sm" name="Qty" value="0"&

我有以下表格:

<input type="text" class="Qty form-control input-sm" name="Qty"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty"  value="0">
在PHP中,输出为(如果仅第一个输入设置为5:

$TEST = $_POST['TEST'];
echo $TEST;

// OUTPUT: Qty=5&Qty=0&Qty=0&Qty=0  
如何仅获取非0的值

// OUTPUT: Qty=5  
我试过:

var TEST = $('.Qty').not('[value="0"]').serialize();

但是它不起作用。有什么想法吗?

抱歉,但是我担心您完全误解了通过HTTP将参数/值传递给服务器端脚本的概念

 var arr = new Array();
$('.Qty').each(function() {
 if ( $('.Qty').attr("value") != "0") {
 arr.push($('.Qty').attr("value")) 
}
});
arr.serialize();
PHP(生成输入元素) PHP(输出结果)
我认为某些验证和检查应该在服务器端进行,因为 客户端验证很容易被“不太好”的访问者“忽略”

html: ID应该是唯一的,并且在一个页面中只显示一次。 将名称更改为“Qty[]”将在服务器端“创建”一个数组

<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty1" value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty2" value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty3" value="0">

您需要在HTML中更改代码,如下所示

<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">

单击submit时,可以通过下面的PHP代码获取值

$qty = $_POST['Qty'];
for($i=0;$i<count($qty);$i++)
{
    if($qty[$i]!='0')
    {
        echo 'Valid value';
    }   
    else
    {
        echo 'Invalid value';  
    }
}
$qty=$\u POST['qty'];

对于($i=0;$i这就是您想要的…..自定义筛选函数将从值为零的项目中清除


我认为您的文本框名称应该像
name=“Qty[]”
@SureshKamrushi为什么在使用类选择器时会出现这种情况?使用不同的id具有相同的id是不好的…文本框id必须不同我已经更新了代码!我没有使用id!而且它不起作用问题是表单是在一个while循环中生成的。行数取决于产品的名称如果这样,您可以使用ajax如果您更喜欢基于JS的解决方案,请考虑@ USE2211216解决方案。在AJAX上,我使用数据:ARR;但是,我的表单是在一个while循环中进行的。行的数量取决于产品的数量。因此,如何给它们提供不同的名称?问题是表单是在一个while循环中生成的。行数取决于产品名称。那么我如何给输入赋予不同的名称呢?
$i=0;而(/*条件*/){$input\u name='parameter'.$i;$i++;}
这里我使用的是一个索引变量(
$i
)我正在递增每个循环。使用此索引变量,我可以为每个迭代生成唯一的名称。@Dutchie432如果您在每个
中写入0,您将发出警报
Qty=0
。您的[value!=“0”]选择器对我不起作用。Hrm-这很奇怪。它似乎是在偏离原始值的情况下运行的。初始值设置为
1
的项目总是会被返回。很抱歉没有更好地进行测试。好的,我已经使用
过滤器更新了一个工作示例的答案-再次为我的错误感到抱歉。
sendThisToServer1 = $('.Qty').serialize();
$(".Qty").each(function() { sendThisToServer2[this.name] = $(this).val(); });
$first = $_POST['sendThisToServer1'];
$second = $_POST['sendThisToServer2'];

echo $first; // parameter_1=value_1&parameter_2=value_2&parameter_3=value_3&parameter_4=value_4
echo $second; // { parameter_1:values_1,parameter_2:value_2,parameter_3:value_3,parameter_4:value4 }
<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty1" value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty2" value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]" id="Qty3" value="0">
$test = $_POST['TEST'];
foreach($test as $k => $v)
{
  if($v != 0)
  {
   // It's not 0, what do you want to do?
   //....
   //....
  }
}
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
<input type="text" class="Qty form-control input-sm" name="Qty[]"  value="0">
$qty = $_POST['Qty'];
for($i=0;$i<count($qty);$i++)
{
    if($qty[$i]!='0')
    {
        echo 'Valid value';
    }   
    else
    {
        echo 'Invalid value';  
    }
}
$('.Qty').filter(function() {
    return parseInt(this.value, 10) !== 0;
}).serialize()