I am working with multi step form with php, I have array $rec where i am getting all
questions ( from database/dynamic).
I want to validate those fields whose key is mandatory and value is 1 (coming from array($rec)).
I want "next" page/question shouldn't display until I fill first question.
Here is my html code
<form action="<?php echo site_url('Nps/FormAdd'); ?>" method="post">
<?php //echo "<pre>"; print_R($keyslug);?>
<input type="hidden" name="mobile_no" value="<?php echo $keyslug['mobileNo']; ?>">
<input type="hidden" name="contact_mapping_id" value="<?php echo $keyslug['id']; ?>">
<?php $i="1";
$lastElement = end($rec);
$i="1";
foreach($rec as $key => $records)
{
<div class="card" id="<?php echo $records['ques_id']; ?>" >
<?php if($records['type']=="range" )
{
?>
<div class="form-group" style="margin-top: 10px;">
<div class="chart-scale develop-rating">
<?php $j=$records['start_range'];
$max= $records['end_range'];
for($i=$j;$i<=$max; $i++) {
?>
<button id="rating" attr-hide-div="<?php if($i <= $records['min_value']) { echo $records['max_show_ques_id']; } else { echo $records['show_ques_id']; }?>"
attr-show-div="<?php if($i <= $records['min_value']) { echo $records['show_ques_id']; } else { echo $records['max_show_ques_id']; }?>"attr-value="<?php echo $i; ?>" class="btn rating-button-click btn-scale btn-scale-asc-<?php echo $i; ?>">
<?php echo $i; ?>
</button>
<?php } ?>
<input type="hidden" id='ques_<?php echo $records['ques_id']; ?>' class="input-develop all-mandatory-check" attr-required="<?php echo $records['mandatory']; ?>" <?php if($records['IsRatingQuestion']=="1") { ?> name='rangeR_<?php echo $records['ques_id']; ?>' <?php } else { ?> name='ques_<?php echo $records['ques_id']; ?>' <?php } ?> value="">
</div>
</div>
<?php
}
elseif($records['type']=="check_box")
{
?>
<div class="form-group checkboxes">
<label class="form-control-label"><?php echo $records['question']; ?></label>
<div>
<?php
$opt = explode("::", $records['options']);
$result = count($opt);
$i="1";
foreach($opt as $s)
{
?>
<label class="form-container"><?php echo $s; ?>
<input class="all-mandatory-check" type="checkbox" attr-required="<?php echo $records['mandatory']; ?>" id="name" value='<?php echo $s; ?>' name='check_<?php echo $records['ques_id']; ?>[]'>
<span class="checkmark"></span>
</label>
<?php } ?>
</div>
</div>
<?php
}
$key;
if($key!="0"){
?>
<input type="button" name="previous" class="previous action-button" value="Previous" />
<?php } ?>
<?php
$record_last_end = $rec;
$lastElement = array_key_last($record_last_end);
if($key == $lastElement)
{
?>
<input type="submit" name="submit" value="submit" class="next action-button" >
<?php } else { ?>
<input type="button" name="next" id="next1" class="next action-button" value="Next" />
<?php } ?>
</div>
</div>
<?php
//$i++;
} ?>
</form>
Hi i need to remove HTML attributes and tags using php but strip_tag not working give any solutions. Some span attributes come along with the table values. I need to update editable table values in mysql db. Please find the attached Error Image in console log. I am working opencart ecommerce site. Its different kind of php language.
View File
<?php echo $header; ?><?php echo $column_left; ?>
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right"><i class="fa fa-plus"></i>
<button type="submit" form="form-product" formaction="<?php echo $copy; ?>" data-toggle="tooltip" title="<?php echo $button_copy; ?>" class="btn btn-default"><i class="fa fa-copy"></i></button>
<button type="button" data-toggle="tooltip" title="<?php echo $button_delete; ?>" class="btn btn-danger" onclick="confirm('<?php echo $text_confirm; ?>') ? $('#form-product').submit() : false;"><i class="fa fa-trash-o"></i></button>
</div>
<h1><?php echo $heading_title; ?></h1>
<ul class="breadcrumb">
<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<li><?php echo $breadcrumb['text']; ?></li>
<?php } ?>
</ul>
</div>
</div>
<div class="container-fluid">
<?php if ($error_warning) { ?>
<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_warning; ?>
<button type="button" class="close" data-dismiss="alert">×</button>
</div>
<?php } ?>
<?php if ($success) { ?>
<div class="alert alert-success"><i class="fa fa-check-circle"></i> <?php echo $success; ?>
<button type="button" class="close" data-dismiss="alert">×</button>
</div>
<?php } ?>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list"></i> <?php echo $text_list; ?></h3>
</div>
<div class="panel-body">
<div class="well">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label class="control-label" for="input-name"><?php echo $entry_name; ?></label>
<input type="text" name="filter_name" value="<?php echo $filter_name; ?>" placeholder="<?php echo $entry_name; ?>" id="input-name" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-model"><?php echo $entry_model; ?></label>
<input type="text" name="filter_model" value="<?php echo $filter_model; ?>" placeholder="<?php echo $entry_model; ?>" id="input-model" class="form-control" />
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="control-label" for="input-price"><?php echo $entry_price; ?></label>
<input type="text" name="filter_price" value="<?php echo $filter_price; ?>" placeholder="<?php echo $entry_price; ?>" id="input-price" class="form-control" />
</div>
<div class="form-group">
<label class="control-label" for="input-quantity"><?php echo $entry_quantity; ?></label>
<input type="text" name="filter_quantity" value="<?php echo $filter_quantity; ?>" placeholder="<?php echo $entry_quantity; ?>" id="input-quantity" class="form-control" />
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="control-label" for="input-status"><?php echo $entry_status; ?></label>
<select name="filter_status" id="input-status" class="form-control">
<option value="*"></option>
<?php if ($filter_status) { ?>
<option value="1" selected="selected"><?php echo $text_enabled; ?></option>
<?php } else { ?>
<option value="1"><?php echo $text_enabled; ?></option>
<?php } ?>
<?php if (!$filter_status && !is_null($filter_status)) { ?>
<option value="0" selected="selected"><?php echo $text_disabled; ?></option>
<?php } else { ?>
<option value="0"><?php echo $text_disabled; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<label class="control-label" for="input-image"><?php echo $entry_image; ?></label>
<select name="filter_image" id="input-image" class="form-control">
<option value="*"></option>
<?php if ($filter_image) { ?>
<option value="1" selected="selected"><?php echo $text_enabled; ?></option>
<?php } else { ?>
<option value="1"><?php echo $text_enabled; ?></option>
<?php } ?>
<?php if (!$filter_image && !is_null($filter_image)) { ?>
<option value="0" selected="selected"><?php echo $text_disabled; ?></option>
<?php } else { ?>
<option value="0"><?php echo $text_disabled; ?></option>
<?php } ?>
</select>
</div>
<div class="col-sm-12">
<div class="form-group">
<label class="control-label" for="input-date"><?php echo $entry_date; ?></label>
<input type="text" name="filter_date" value="<?php echo $filter_date; ?>" placeholder="<?php echo $entry_date; ?>" id="input-date" class="form-control" />
</div>
<!--<div class="form-group">
<label class="control-label" for="input-quantity"><?php //echo $entry_quantity; ?></label>
<input type="text" name="filter_quantity" value="<?php //echo $filter_quantity; ?>" placeholder="<?php //echo $entry_quantity; ?>" id="input-quantity" class="form-control" />
</div>-->
</div>
<button type="button" id="button-filter" class="btn btn-primary pull-right"><i class="fa fa-filter"></i> <?php echo $button_filter; ?></button>
</div>
</div>
</div>
<form action="<?php echo $delete; ?>" method="post" enctype="multipart/form-data" id="form-product">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<td style="width: 1px;" class="text-center"><input type="checkbox" onclick="$('input[name*=\'selected\']').prop('checked', this.checked);" /></td>
<td class="text-center"><?php echo $column_image; ?></td>
<td class="text-left"><?php if ($sort == 'pd.name') { ?>
<?php echo $column_name; ?>
<?php } else { ?>
<?php echo $column_name; ?>
<?php } ?></td>
<td class="text-left"><?php if ($sort == 'p.model') { ?>
<?php echo $column_model; ?>
<?php } else { ?>
<?php echo $column_model; ?>
<?php } ?></td>
<td class="text-left"><?php if ($sort == 'p.seo') { ?>
<?php echo $column_seo; ?>
<?php } else { ?>
<?php echo $column_seo; ?>
<?php } ?></td>
<td class="text-left"><?php if ($sort == 'p.date') { ?>
<?php echo $column_date; ?>
<?php } else { ?>
<?php echo $column_date; ?>
<?php } ?></td>
<td class="text-right"><?php if ($sort == 'p.price') { ?>
<?php echo $column_price; ?>
<?php } else { ?>
<?php echo $column_price; ?>
<?php } ?></td>
<td class="text-right"><?php if ($sort == 'p.quantity') { ?>
<?php echo $column_quantity; ?>
<?php } else { ?>
<?php echo $column_quantity; ?>
<?php } ?></td>
<td class="text-left"><?php if ($sort == 'p.status') { ?>
<?php echo $column_status; ?>
<?php } else { ?>
<?php echo $column_status; ?>
<?php } ?></td>
<td class="text-right"><?php echo $column_action; ?></td>
</tr>
</thead>
<tbody>
<?php if ($products) { ?>
<?php foreach ($products as $product) { ?>
<tr id = "<?php $product['product_id'];?>" >
<td class="text-center"><?php if (in_array($product['product_id'], $selected)) { ?>
<input type="checkbox" name="selected[]" value="<?php echo $product['product_id']; ?>" checked="checked" />
<?php } else { ?>
<input type="checkbox" name="selected[]" value="<?php echo $product['product_id']; ?>" />
<?php } ?></td>
<td class="text-center"><?php if ($product['image']) { ?>
<img src="<?php echo $product['image']; ?>" alt="<?php echo $product['name']; ?>" class="img-thumbnail" />
<?php } else { ?>
<span class="img-thumbnail list"><i class="fa fa-camera fa-2x"></i></span>
<?php } ?></td>
<td class="text-left"><?php echo $product['name']; ?></td>
<td class="text-left"><?php echo $product['model']; ?></td>
<td class="text-left"><?php echo $product['keyword']; ?></td>
<td class="text-left"><?php echo $product['date_available']; ?></td>
<td contenteditable="true" onblur = "update(this, 'price','<?php echo $product['product_id']; ?>')" class="text-right"><?php if ($product['special']) { ?>
<span style="text-decoration: line-through;"><?php echo $product['price']; ?></span><br/>
<div class="text-danger"><?php echo $product['special']; ?></div>
<?php } else { ?>
<?php echo $product['price']; ?>
<?php } ?></td>
<td contenteditable="true" onblur = "update(this, 'quantity','<?php echo $product['product_id']; ?>')" class="text-right"><?php if ($product['quantity'] <= 0) { ?>
<span class="label label-warning"><?php echo $product['quantity']; ?></span>
<?php } elseif ($product['quantity'] <= 5) { ?>
<span class="label label-danger"><?php echo $product['quantity']; ?></span>
<?php } else { ?>
<span class="label label-success"><?php echo $product['quantity']; ?></span>
<?php } ?></td>
<td class="text-left"><?php echo $product['status']; ?></td>
<td class="text-left"><i class="fa fa-pencil"></i>
<!--<i class="fa fa-save"></i>--></td>
</tr>
<?php } ?>
<?php } else { ?>
<tr>
<td class="text-center" colspan="8"><?php echo $text_no_results; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</form>
<div class="row">
<div class="col-sm-6 text-left"><?php echo $pagination; ?></div>
<div class="col-sm-6 text-right"><?php echo $results; ?></div>
</div>
</div>
</div>
</div>
<script type="text/javascript"><!--
$('#button-filter').on('click', function() {
var url = 'index.php?route=catalog/product&token=<?php echo $token; ?>';
var filter_name = $('input[name=\'filter_name\']').val();
if (filter_name) {
url += '&filter_name=' + encodeURIComponent(filter_name);
}
var filter_model = $('input[name=\'filter_model\']').val();
if (filter_model) {
url += '&filter_model=' + encodeURIComponent(filter_model);
}
var filter_price = $('input[name=\'filter_price\']').val();
if (filter_price) {
url += '&filter_price=' + encodeURIComponent(filter_price);
}
var filter_quantity = $('input[name=\'filter_quantity\']').val();
if (filter_quantity) {
url += '&filter_quantity=' + encodeURIComponent(filter_quantity);
}
var filter_status = $('select[name=\'filter_status\']').val();
if (filter_status != '*') {
url += '&filter_status=' + encodeURIComponent(filter_status);
}
var filter_image = $('select[name=\'filter_image\']').val();
if (filter_image != '*') {
url += '&filter_image=' + encodeURIComponent(filter_image);
}
var filter_date = $('input[name=\'filter_date\']').val();
if (filter_date) {
url += '&filter_date=' + encodeURIComponent(filter_date);
}
location = url;
});
//--></script>
<script type = "text/javascript">
function update(editableObj, column, product_id)
{
// if(confirm('Are you sure Update this data?'))
// {
//console.log(editableObj, column, product_id);
// return false;
$.ajax({
url: "index.php?route=catalog/product/update&token=<?php echo $token; ?>",
type: "POST",
//dataType: "JSON",
data: "column="+column+"&value="+editableObj.innerHTML+"&product_id="+product_id,
success: function(data) {
// set updated value as old value
$(editableObj).attr('data-old_value',editableObj.innerHTML);
//$(editableObj).css("background","#FDFDFD");
console.log(data);
},
// error: function (data) {
// console.log(data);
// }
});
// }
}
</script>
<script type="text/javascript"><!--
$('input[name=\'filter_name\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=catalog/product/autocomplete&token=<?php echo $token; ?>&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['product_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_name\']').val(item['label']);
}
});
$('input[name=\'filter_model\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=catalog/product/autocomplete&token=<?php echo $token; ?>&filter_model=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['model'],
value: item['product_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'filter_model\']').val(item['label']);
}
});
//--></script></div>
<?php echo $footer; ?>
Controller File.
public function update()
{
$this->load->language('catalog/product');
//$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('catalog/product');
// print_r(strip_tags($this->request->post['product_id']));
// print_r($this->request->post['column']);
// print_r(strip_tags(trim($this->request->post['value'])));
// die;
$product_id = strip_tags($this->request->post['product_id']);
$column = $this->request->post['column'];
$editableobj = strip_tags(trim($this->request->post['value']));
$this->model_catalog_product->updateProduct($product_id, $column, $editableobj);
}
Error Report
[52price7897
index.php?route=catalog/product&token=4IEByubsLQVVEvXwKEaL0hytqZose2Wj:1006 52quantity<span class="label label-warning">9878970</span>][1]
strip_tags(html_entity_decode($result['name'],ENT_QUOTES,'UTF-8')) use this one, in $result['name'] give your varaibale name, it will work, you need to also use html_entity_decode function This code is working thanks karthickeyan
actually i am creating a online exam webapplication in php. and i m retrieving data from database .now the prob. is how to loop data by indexing one by one..
so user view one question at a time and after clicking on submit button it display the next question by from array.
here i used array of all the rows and taking question one by one by javascript . but there is some prob. in javascript . i only render 1st question .. increment is not implementing correctly.
<input type="hidden" value="<?php echo $i=0; ?>" id="cc">
<div id="counter">
<p id="idIndex" name="id" value="<?php echo $findData[$i]['Exam']['id']; ?>"><?php echo $findData[$i]['Exam']['id']; ?> </p>
<p ><?php echo $findData[$i]['Exam']['que'];?></p>
<input type="radio" value="<?php echo $findData[$i]['Exam']['op1']; ?>" name="op1" id="jaid" ><?php echo $findData[$i]['Exam']['op1']; ?>
<input type="radio" value="<?php echo $findData[$i]['Exam']['op2']; ?>" name="op1" id="jai" ><?php echo $findData[$i]['Exam']['op2']; ?>
<input type="radio" value="<?php echo $findData[$i]['Exam']['op3']; ?>" name="op1" id="jai"><?php echo $findData[$i]['Exam']['op3']; ?>
<input type="radio" value="<?php echo $findData[$i]['Exam']['op4']; ?>" name="op1" id="jai" ><?php echo $findData[$i]['Exam']['op4']; ?>
</div>
<input type="submit" id="sub" onclick="myexam()" >
<?php echo $this->Html->script('jquery-2.2.3.min'); ?>
<script>
function myexam(value)
{
var v=$("#cc").val();
}
</script>
PHP is server side. Once your HTML is rendered, PHP has nothing more top do with it!
$("#cc").val("<?php echo $i=+1;?>");
The php echo is a string, that wont work.
var v=$("#cc").val();
v = v + 1;
$("#cc").val(v);
That should work. Fix the other line of JS similarly.
I am trying to implement this codepen.io into my PHP form where all fields come from a database.
Php Code:
<?php if ($type == 'recaptcha') { ?>
<label class="control-label col-md-2"></label>
<?php } else { ?>
<label class="control-label col-md-2 <?php if (!empty($error)) { ?>has-error<?php } ?>" for="<?php echo $element_id ?>"><?php echo $title ?></label>
<?php } ?>
<div class="input-group col-md-9 <?php if (!empty($error)) { ?>has-error<?php } ?>">
<?php echo $item_html ?>
</div>
<span class="help-block">
<div class="element_description"><?php echo $description ?></div>
<?php if ($error) { ?>
<div class="element_error has-error"><?php echo $error ?></div>
<?php } ?>
</span>
Now it shows like this:
I have tried a few things but everything comes from
<?php echo $item_html ?>
So I can't really seperate the dynamic labels.
Can anyone guide me how to achieve this?
In the Opencart filters I would like to change the Input Box Push to a click link;
Here is what I have at the minute;
<?php foreach($filter_groups as $filter_group){ ?>
<div>
<ul>
<li><span id="filter-group<?php echo $filter_group['filter_group_id']; ?>"><?php echo $filter_group['name']; ?></span>
<ul>
<?php foreach($filter_group['filter'] as $filter){ ?>
<?php if(in_array($filter['filter_id'], $filter_category)){ ?>
<li>
<input type="checkbox" value="<?php echo $filter['filter_id']; ?>" class="item" id="filter<?php echo $filter['filter_id']; ?>" checked="checked" />
<label for="filter<?php echo $filter['filter_id']; ?>"><?php echo $filter['name']; ?></label>
</li>
<?php } else { ?>
<li>
<input type="checkbox" value="<?php echo $filter['filter_id']; ?>" class="item" id="filter<?php echo $filter['filter_id']; ?>" />
<label for="filter<?php echo $filter['filter_id']; ?>"><?php echo $filter['name']; ?></label>
</li>
<?php } ?>
<?php } ?>
</ul>
</li>
</ul>
</div>
<?php } ?>
<script type="text/javascript">
$(document).ready(function() {
$('.item').live('change', function(){
filter = [];
$('input[type=\'checkbox\']:checked').each(function(element) {
filter.push(this.value);
});
location = '<?php echo $action; ?>&filter=' + filter.join(',');
});
});
//--></script>
I am guessing the HTML will change to something like this;
<?php foreach($filter_groups as $filter_group){ ?>
<div>
<ul>
<li><span id="filter-group<?php echo $filter_group['filter_group_id']; ?>"><?php echo $filter_group['name']; ?></span>
<ul>
<?php foreach($filter_group['filter'] as $filter){ ?>
<?php if(in_array($filter['filter_id'], $filter_category)){ ?>
<li class="selected">
<?php echo $filter['name']; ?>
</li>
<?php } else { ?>
<li>
<?php echo $filter['name']; ?>
</li>
<?php } ?>
<?php } ?>
</ul>
</li>
</ul>
</div>
<?php } ?>
I just have no idea how to approaching changing to so it submits an onclick location change that preserves the existing filters. Are you able to assist me?
Yes, that is correct, the new HTML should work. To make it simpler (without need of JavaScript) You may fill in the href attribute to this dynamic value:
<?php echo $filter['name']; ?>
(no need of id attribute). Now on click the URL is directly triggered changing the filter to new filter_id.
Keep in mind that the default approach let's the user to check more than one filter value however with Your approach only one filter value could be selected at a time.
It might be also usefull to display the currently selected filter only as a text node so that it is not clickable, e.g. like this:
<?php if(in_array($filter['filter_id'], $filter_category)){ ?>
<li class="selected">
<span><?php echo $filter['name']; ?></span>
</li>
<?php } else { ?>
<li>
<?php echo $filter['name']; ?>
</li>
<?php } ?>