PHPLover
PHPLover

Reputation: 12957

How to concatenate variable and string in following scenario in PHP?

I've following PHP code:

<?php
$rebate_no = 2;
echo "<table id='blacklistgrid_$rebate_no'  class='table table-bordered table-hover table-striped blacklistgrid'>
        <tr id='reb$rebate_no_1'>
          <td>
            <div class='btn-group'>
              <select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>
                <option value='1'>Alabama</option>
                <option value='2'>Alaska</option>
                <option value='3'>Arizona</option>
                <option value='4'>Arkansas</option>
                <option value='5'>California</option>
              </select>
            </div>
          </td>
        </tr>
      </table>";
?>

In above code I'm having issues in concatenation of variable and string at following lines:

<tr id='reb$rebate_no_1'>
<select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>

I tried following trick but it didn't work for me.

<tr id='reb'.$rebate_no.'_1'>
<select name='product_id_$rebate_no[1]' id='product_id_'.$rebate_no.'_1' class='form-control prod_list'>

If I check in HTML source I'm getting following HTML:

<tr id="reb" .2.'_1'="">
<select id="product_id_" class="form-control prod_list" .2.'_1'="" name="product_id_">

Actually I want the HTML in following desired format:

<tr id='reb2_1'>
<select name='product_id_2[1]' id='product_id_2_1' class='form-control prod_list'>

How to achieve this? Thanks in advance.

Upvotes: 0

Views: 25954

Answers (6)

Mitul Shah
Mitul Shah

Reputation: 1566

There is easiest method Use (" ") double quotes instead of (' ') without making it complicated.

<tr id="reb$rebate_no_1">
<select name="product_id_$rebate_no[1]" id="product_id_$rebate_no_1" class='form-control prod_list'>

instead of

<tr id='reb$rebate_no_1'>
<select name='product_id_$rebate_no[1]' id='product_id_$rebate_no_1' class='form-control prod_list'>

Reff : PHP: different quotes?

Upvotes: 1

Zander Rootman
Zander Rootman

Reputation: 2208

String concatenation

<?php
$rebate_no = 2;
echo "<table id='blacklistgrid_".$rebate_no."'  class='table table-bordered table-hover table-striped blacklistgrid'>
        <tr id='reb".$rebate_no_1."'>
          <td>
            <div class='btn-group'>
              <select name='product_id_".$rebate_no[1]." id='product_id_".$rebate_no_1."' class='form-control prod_list'>
                <option value='1'>Alabama</option>
                <option value='2'>Alaska</option>
                <option value='3'>Arizona</option>
                <option value='4'>Arkansas</option>
                <option value='5'>California</option>
              </select>
            </div>
          </td>
        </tr>
      </table>";
?>

OR If you want to use the Zend specification

<?php
    $rebate_no = 2;
    echo "<table id='blacklistgrid_{$rebate_no}'  class='table table-bordered table-hover table-striped blacklistgrid'>
            <tr id='reb{$rebate_no_1}'>
              <td>
                <div class='btn-group'>
                  <select name='product_id_{$rebate_no[1]} id='product_id_{$rebate_no_1}' class='form-control prod_list'>
                    <option value='1'>Alabama</option>
                    <option value='2'>Alaska</option>
                    <option value='3'>Arizona</option>
                    <option value='4'>Arkansas</option>
                    <option value='5'>California</option>
                  </select>
                </div>
              </td>
            </tr>
          </table>";
    ?>

Upvotes: 2

Jacky Cheng
Jacky Cheng

Reputation: 1556

you got the trick wrong.

instead of doing

<tr id='reb'.$rebate_no.'_1'>

do

<tr id='reb".$rebate_no."_1'>

Upvotes: 1

kennypu
kennypu

Reputation: 6051

the problem lies with $rebate_no[1]. you can either store the value of that into a regular variable, append the value to the string like below, or surround it in curly brackets like so {$rebate_no[1]}

echo "<table id='blacklistgrid_$rebate_no'  class='table table-bordered table-hover table-striped blacklistgrid'>
        <tr id='reb$rebate_no_1'>
          <td>
            <div class='btn-group'>
              <select name='product_id_" . $rebate_no[1] . "' id='product_id_$rebate_no_1' class='form-control prod_list'>
                <option value='1'>Alabama</option>
                <option value='2'>Alaska</option>
                <option value='3'>Arizona</option>
                <option value='4'>Arkansas</option>
                <option value='5'>California</option>
              </select>
            </div>
          </td>
        </tr>
      </table>";

Upvotes: 1

Awlad Liton
Awlad Liton

Reputation: 9351

Try this:

   <tr id='re'".$rebate_no."_1'>
    <select name='product_id_$rebate_no[1]' id='product_id_".$rebate_no."_1' class='form-control prod_list'>

when you are concating the string you need use double quotes since you started string with double quotes.

Upvotes: 1

AyB
AyB

Reputation: 11665

You started with double quotes, so you can do it this way:

<tr id='reb".$rebate_no."_1'>

or use curly braces {} around the variable:

<tr id='reb{$rebate_no}_1'>

Both are valid.

Upvotes: 1

Related Questions