disabling html div when theres no value needed - php

Hello I want to disable an <img> tag inside a certain <div> when there's no image inputted by the user.
if(is_array($init) || is_object($init)){
foreach ($init as $data) {
echo '
<div id="profile-page-wall-post" class="card">
<div class="card-profile-title">
<div class="row">
<div class="col s1">
<img src="'.base_url('assets/images/'.$data->accounts_picture.'').'"
alt="" class="circle responsive-img valign profile-post-uer-image">
</div>
<div class="col s10">
<p class="grey-text text-darken-4 margin">'.$data->accounts_fname."\t".$data->accounts_lname.'</p>
<span class="grey-text text-darken-1 ultra-small">Shared publicly '.$data->post_date.'</span>
</div>
</div>
<div class="row center-align">
<div class="col s12">
<img class="Boxing image_attached" src="'.base_url('assets/files/'.$data->post_picture.'').'">
</div>
</div>
<div class="row">
<div class="col s12">
<p>'.$data->post_content.'</p>
</div>
</div>
<div class="row">
<div class="col s12">
<a href="'.base_url('assets/files/'.$data->post_file.'').'" download>'.$data->post_filename.'</a>
</div>
</div>
</div>
<div class="card-action row">
<div class="input-field col s8 margin">
<input id="profile-comments" type="text"
class="validate margin">
<label for="profile-comments" class="">
Comments
</label>
</div>
</div>
<div id="CommentSection" class="z-depth-1 col s12">
<div class="col s12">
<div class="card-panel grey lighten-5 z-depth-1">
<div class="row valign-wrapper">
<div class="col s2">
<img src="assets/images/def.jpg"
alt="" class="circle responsive-img">
</div>
<div class="col s10">
<p>Comment content</p>
</div>
</div>
</div>
</div>
</div>
</div>
';
}
}
I wanted to disable the <div> with the <img> inside, if $data->post_picture is null. How can I do this?

Not sure why this is tagged with jQuery and Javascript, since all you seem to be using is PHP, so why don't you just:
// ... (end your echo)
';
if(!empty($data->post_picture)){
echo '
<div class="row center-align">
<div class="col s12">
<img class="Boxing image_attached" src="'.base_url('assets/files/'.$data->post_picture.'').'">
</div>
</div>
';
}
echo ' // (continue your echo)
// ...
Please also not that you may have a syntax error at "'.base_url('assets/files/'.$data->post_picture.'').'" (you're closing and opening '' but this actually closes your echo '. You're using single quotes (') around what you're echoing, then double quotes around the img src="", and then single quotes around the base_url again, which I think (I'm not sure, since the code is so messy and I get confused by all the quotes) results in a syntax error over here: '').'.

Related

XPath Specific Expression WebDriver Error

I have a problem with WebDriver's XPath that, even though it's right, is returning an error expression.
The expression is:
(*//div[contains(#class, 'myb-SettledBetItem ') or contains(#class, 'myb-OpenBetItem_Collapsed') or contains(#class, 'myb-OpenBetItem ')]//(span[#class='myb-SettledBetParticipant_ParticipantSpan ' or #class='myb-OpenBetParticipant_ParticipantSpan']|div[#class='myb-SettledBetItem_SubHeaderText']))
The html is:
<div class="myb-BetItemsContainer_BetItemsContainer ">
<div class="myb-SettledBetItem ">
<div class="myb-SettledBetItemHeader ">
<div class="myb-SettledBetItemHeader_HeaderTextContainer ">
<div class="myb-SettledBetItemHeader_Title ">
<div class="myb-SettledBetItemHeader_Text ">R$0,50 Simples</div>
</div>
<div class="myb-SettledBetItem_SubHeaderText "></div>
</div>
<div class="myb-SettledBetItem_BetStateContainer ">
<div class="myb-SettledBetItem_BetStateLabel ">Retorno Obtido</div>
<div class="myb-SettledBetItem_BetReturnLabel ">R$1,19</div>
</div>
</div>
<div>
<div>
<div class="myb-SettledBetParticipant-FirstOfType myb-SettledBetParticipant myb-SettledBetParticipant_Won ">
<div class="myb-SettledBetParticipant_Header ">
<div class="myb-SettledBetParticipant_HeaderTitle ">
<div class="myb-SettledBetParticipant_HeaderText "><span class="myb-SettledBetParticipant_ParticipantSpan ">Hollyoak Hector (v Courts Ad Darcey) </span>
<div class="myb-HalfAndHalfPill myb-HalfAndHalfPill_Status-1 ">
<div class="myb-HalfAndHalfPill_TextStatus myb-HalfAndHalfPill_TextStatus-1 ">
<div class="myb-HalfAndHalfPill_TextStatusLHS myb-HalfAndHalfPill_TextStatusLHS-1 "></div>
<div class="myb-HalfAndHalfPill_TextStatusRHS myb-HalfAndHalfPill_TextStatusRHS-1 "></div>
</div>
</div>
</div>
</div>
<div class="myb-SettledBetParticipant_HeaderOdds ">2.37</div>
</div>
<div class="myb-SettledBetParticipant_MarketDescription ">Aposta Comparativa</div>
<div class="myb-SettledBetParticipant_FixtureDescription ">8.27 Central Park EVE (Corrida 8)</div>
</div>
</div>
<div class="myb-SettledBetItemFooter ">
<div class="myb-SettledBetItemFooter_BetInformation ">
<div class="myb-SettledBetItemFooter_StakeInformation ">
<div class="myb-SettledBetItemFooter_StakeLabel ">Aposta</div>
<div class="myb-SettledBetItemFooter_StakeTextWrapper "><span class="myb-SettledBetItemFooter_StakeTextCurrency myb-SettledBetItemFooter_StakeTextCurrency-formatted ">R$</span><span class="myb-SettledBetItemFooter_StakeText ">0,50</span></div>
</div>
<div class="myb-SettledBetItemFooter_ReturnInformation ">
<div class="myb-SettledBetItemFooter_ReturnLabel ">Retorno Total</div>
<div class="myb-SettledBetItemFooter_ReturnTextWrapper "><span class="myb-SettledBetItemFooter_ReturnTextCurrency myb-SettledBetItemFooter_ReturnTextCurrency-formatted ">R$</span><span class="myb-SettledBetItemFooter_ReturnText ">1,19</span></div>
</div>
</div>
</div>
</div>
</div>
<div class="myb-SettledBetItem ">
<div class="myb-SettledBetItemHeader ">
<div class="myb-SettledBetItemHeader_HeaderTextContainer ">
<div class="myb-SettledBetItemHeader_Title ">
<div class="myb-SettledBetItemHeader_Text ">R$0,50 Simples</div>
</div>
<div class="myb-SettledBetItem_SubHeaderText "></div>
</div>
<div class="myb-SettledBetItem_BetStateContainer ">
<div class="myb-SettledBetItem_BetStateLabel ">Retorno Obtido</div>
<div class="myb-SettledBetItem_BetReturnLabel ">R$0,77</div>
</div>
</div>
<div>
<div>
<div class="myb-SettledBetParticipant-FirstOfType myb-SettledBetParticipant myb-SettledBetParticipant_Won ">
<div class="myb-SettledBetParticipant_Header ">
<div class="myb-SettledBetParticipant_HeaderTitle ">
<div class="myb-SettledBetParticipant_HeaderText "><span class="myb-SettledBetParticipant_ParticipantSpan ">Trap 8 </span>
<div class="myb-HalfAndHalfPill myb-HalfAndHalfPill_Status-1 ">
<div class="myb-HalfAndHalfPill_TextStatus myb-HalfAndHalfPill_TextStatus-1 ">
<div class="myb-HalfAndHalfPill_TextStatusLHS myb-HalfAndHalfPill_TextStatusLHS-1 "></div>
<div class="myb-HalfAndHalfPill_TextStatusRHS myb-HalfAndHalfPill_TextStatusRHS-1 "></div>
</div>
</div>
</div>
</div>
<div class="myb-SettledBetParticipant_HeaderOdds ">1.53</div>
</div>
<div class="myb-SettledBetParticipant_MarketDescription ">Vencedor e V/C Ao-Vivo</div>
<div class="myb-SettledBetParticipant_FixtureDescription ">Race 15 Palm Beach</div>
</div>
</div>
<div class="myb-SettledBetItemFooter ">
<div class="myb-SettledBetItemFooter_BetInformation ">
<div class="myb-SettledBetItemFooter_StakeInformation ">
<div class="myb-SettledBetItemFooter_StakeLabel ">Aposta</div>
<div class="myb-SettledBetItemFooter_StakeTextWrapper "><span class="myb-SettledBetItemFooter_StakeTextCurrency myb-SettledBetItemFooter_StakeTextCurrency-formatted ">R$</span><span class="myb-SettledBetItemFooter_StakeText ">0,50</span></div>
</div>
<div class="myb-SettledBetItemFooter_ReturnInformation ">
<div class="myb-SettledBetItemFooter_ReturnLabel ">Retorno Total</div>
<div class="myb-SettledBetItemFooter_ReturnTextWrapper "><span class="myb-SettledBetItemFooter_ReturnTextCurrency myb-SettledBetItemFooter_ReturnTextCurrency-formatted ">R$</span><span class="myb-SettledBetItemFooter_ReturnText ">0,77</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
Expected outcome:
Hollyoak Hector (v Courts Ad Darcey)
Trap 8
And was tested on the site: http://xpather.com/
The error returned is:
Fatal error: Uncaught Facebook\WebDriver\Exception\InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression THIS_EXPRESSION because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string THIS_EXPRESSION is not a valid XPath expression. .... in DIR/vendor/facebook/webdriver/lib/Exception/WebDriverException.php on line 152
What is happening? Why doesn't it work in WebDriver's Xpath and it works on this site?
Is this the best way to handle this data?
Your XPath expression only works in XPath-2.0 or above.
To make it work in XPath-1.0, you have to split what you have tried to do with the brackets:
//div[contains(#class, 'myb-SettledBetItem ') or contains(#class, 'myb-OpenBetItem_Collapsed') or contains(#class, 'myb-OpenBetItem ')]//span[#class='myb-SettledBetParticipant_ParticipantSpan ' or #class='myb-OpenBetParticipant_ParticipantSpan'] | //div[contains(#class, 'myb-SettledBetItem ') or contains(#class, 'myb-OpenBetItem_Collapsed') or contains(#class, 'myb-OpenBetItem ')]/div[#class='myb-SettledBetItem_SubHeaderText']
So duplicate the first part of the expression and apply the union afterwards on both expressions.

Setting Categories using tabs with Laravel

I would like to ask how to pull categories using tabs. I was able to pull all the items on one tab but I could not pull them per category. here is my code. The data comes from the database and seems to work on All items but I could not figure out how to pull them individually. I need some help with you expertise.
<div class="tab-content">
<div class="tab-pane container active" id="home">...</div>
<div class="tab-pane container fade" id="allItems">All Items
<div>
<div class="row">
<div class="col-12">
<div class="row">
#foreach($items as $per_item)
<div class="col-lg-4 col-6">
<div class="card mb-3">
<img src="{{$per_item->image_path}}" class="card-img-top">
<div class="card-body">
<small>{{$per_item->category->name}}</small>
<h4 class="card-title">
<a href="/items/{{$per_item->id}}">
{{$per_item->name}}
</a>
</h4>
<p class="card-text">{{$per_item->description}}</p>
<h3>{{$per_item->price}}</h3>
<form action="/cart/{{$per_item->id}}" method="POST">
#csrf
<div class="row">
<div class="col-12 col-md-5 col-lg-12 mb-2">
<input type="number" name="quantity" id="quantity"
class="w-100">
</div>
<div class="col-12 col-md-7 col-lg-12 mb-2">
<button type="submit" class="btn btn-primary">Add To
Cart</button>
</div>
</div>
</form>
</div>
</div>
</div>
#endforeach
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane container fade" id="consumables">Consumables
<div>
</div>
</div>
<div class="tab-pvane container fade" id="pnuematicTools">Pnuematic
Tools</div>

Move the widget to the right side of the web page using bootstrap 4

I want the information tag to be at the right side of the web page. Rest of the things are in the middle of the page. While I am not able to move the information to the right side. Also, because of it the footer disappeared. While I remove the information code, the footer works. Please help me right-align the information widget and also have the footer too.
<div class="container">
<div class="card border-light mb-3 text-center">
<p class="card-header">Videos</p>
</div>
<div id="userSuccess" class="hide" role="alert">
<div id="successUserContent"></div>
</div>
<div class="row" id="userVid">
<?php
$allVid = Schema::getAll();
for ($i = 0; $i < count($allVid); $i++) {
echo <<<HTML
<div class="col-lg-4 col-md-6 mb-4">
<div class="card h-100">
<div class="card-body">
<img class="card-img-top" src="http://placehold.it/700x400" alt="">
<h4 class="card-title">{$allVid[$i]->getTitle()} </h4>
</div>
</div>
</div>
HTML;
}
?>
</div>
<div class="row">
<div class="col-md-4 order-md-2 mb-4">
<div class="card my-4">
<h5 class="card-header">Information</h5>
<div class="card-body">
<div class="row">
<ul class="list-unstyled mb-0">
<li>
...
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
require_once './page/footer.php';
?>
For right align, you'll want to add the class of "justify-content-end" after your "row" class.
<div class="row justify-content-end"><!-- ADDED HERE-->
<div class="col-md-4 order-md-2 mb-4">
<div class="card my-4">
<h5 class="card-header">Information</h5>
<!-- REST OF YOUR CODE-->
For your footer, you'll need to wrap your URL in parenthesis.
<?php require_once('/yourdirectory/yourfooter.php'); ?>

What is the master rules of grape html element by find method of simple dome parse

I am using simple_html_dome and I want to grab experience, education, and title.
By my code, I am getting (Call to a member function find() on null in ) error message but title is showing error is ($notrmjobs = $item->find('div[class=norm-jobs-wrapper]',0);) here.
What is the core rules to catch HTML tag by find method?
<div class="boxed">
<div class="row">
<div class="col-md-12">
<div class="norm-jobs-wrapper" onclick="DivOpen('id=734675&fcatId=1&ln=1');">
<div class="row">
<div class="col-sm-3 col-sm-push-3">
<!--<div class="row">
<div class="col-sm-12">
<div class="comp_logo"><img src="images/38951.jpg" alt=""></div>
</div>
</div>-->
</div>
<div class="col-sm-9 col-sm-pull-9">
<div class="row">
<div class="col-sm-12">
<div class="comp-name-text">GBA Techno Pvt. Ltd.</div>
</div>
<div class="col-sm-12">
<div class="job-title-text">
<a onclick="clickJObTitle()" target="_blank" href="jobdetails.asp?id=734675&fcatId=1&ln=1">
Sr. Executive, Accounts
</a>
</div>
</div>
<div class="col-sm-12">
<div class="edu-text">
<div class="row">
<div class="col-sm-2">
<div class="edu-text-s">
Education:
</div>
</div>
<div class="col-sm-10">
<div class="edu-text-d">
Masters/ MBA in Accounts or Finance from any reputed university
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="row">
<div class="col-sm-9">
<div class="exp-text">
<div class="row">
<div class="col-sm-2">
<div class="exp-text-s">Experience:</div>
</div>
<div class="col-sm-10">
<div class="exp-text-d">
At least 3 year(s)
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="dead-text">
<div class="dead-text-s">Deadline: </div>
<div class="dead-text-d">
<strong>Dec 13, </strong>2017
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
include 'simple_html_dom.php';
$html = file_get_html('http://jobs.bdjobs.com/jobsearch.asp?fcatId=1&icatId=');
$boxed = $html->find('div[class=boxed]',0);
$raw = $boxed->find('div[class=row]');
foreach($raw as $key => $loop){
$item = $loop->find('div[class=col-md-12]',0);
$notrmjobs = $item->find('div[class=norm-jobs-wrapper]',0);
$raw = $notrmjobs->find('div[class=row]',0);
$sdivice = $raw->find('div[class=col-sm-9 col-sm-pull-9]',0);
$sraw = $sdivice->find('div[class=row]',0);
$asraw = $sraw->find('div[class=col-sm-12]',0);
$title = $asraw->find('div[class=comp-name-text]',0)->plaintext;
echo $title;
}
?>

How do I hide the div if the Var is empty?

I am trying to hide an entire piece of CSS, a field, when the result of the vr is empty. How should I get this done? I currently managed to make sure that when the data is empty in the database, it doesn't display anything at all, otherwise it does.
<div class="row row_border">
<div class="col-md-2 col-sm-2 col-xs-3"><div class="icon"><span class="icon-tree101"></span></div></div>
<div class="col-md-10 col-sm-10 col-xs-9">
<div class="row">
<div class="col-md-12 col-sm-12"><h4>Buitenruimte</h4></div>
<div class="col-md-6 col-sm-6 list_name">
<?php if (empty(Vars::$content->object->data['obw_tuintype'])) { echo ""; } else { echo (Vars::$content->object->data['obw_tuintype']); } ?>
</div>
</div>
</div>
</div>
that's the code I have so far, thanks.
Why not put the if statement outside of the div? That way, if the element is empty, the entire div won't be displayed at all:
<?php if(!empty(Vars::$content->object->data['obw_tuintype'])){ ?>
<div class="row row_border">
<div class="col-md-2 col-sm-2 col-xs-3"><div class="icon"><span class="icon-tree101"></span></div></div>
<div class="col-md-10 col-sm-10 col-xs-9">
<div class="row">
<div class="col-md-12 col-sm-12"><h4>Buitenruimte</h4></div>
<div class="col-md-6 col-sm-6 list_name">
<?php echo (Vars::$content->object->data['obw_tuintype']); ?>
</div>
</div>
</div>
</div>
<?php } ?>

Categories