Morgan Clarke Morgan Clarke - 9 months ago 42
PHP Question

PHP echo html table error

I have created a table using data from a database, to create it I used a loop to get every piece of data from the columns I need. Now, I have called a

function in the
of the input. But, I keep getting an error. The function does seem to work, It's just the actual
that seems to be giving the error. It's on line 58 where you can see I am creating a table and inserting the rows.


My javascript function is working. The error is when it tries to set the
width and alignment.
The error I get is:

Uncaught SyntaxError: Invalid or unexpected token

require_once 'dbconnect.php';
if( !isset($_SESSION['user']) ) {
header("Location: index.php");
$deny = array("222.222.222", "333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
$res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$_SESSION['user']);
<!DOCTYPE html>
<?php header("Access-Control-Allow-Origin:"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="scripts/home/index.css" />
<li><a href="#" class="a"></a></li>
<li><a href="logout.php?logout" class="a">Sign Out</a></li>
<li><a href="#" class="a">Contact</a></li>
<li><a href="#" class="a">Get Service Coins</a></li>
<li><a href="#" class="a">News</a></li>
<li><a href="settings.php" class="a">Settings</a></li>
<li><a href="#" class="a">Referrals</a></li>
<li><a href="service.php" class="a">Services</a></li>
<li><a href="home.php" class="a">Home</a></li>
<br /><br />
<h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userServices']; ?></span> Services</h3>
<p id="error"></p>
<button onclick="send_coins()" class="button">Send Coins</button>
<button onclick="create_service()" class="button">Create A Service</button>
<button onclick="send_coins()" class="button">My Services</button>
<h3>View Services</h3>
$users = 1;
$num = 1;
echo "<center><table width=1000><th>Buy</th><th>Service Name</th><th>Service Cost</th><th>Service Description</th><th>Service Provider Name</th>";
while($users < 100 && $num < 100){
$res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$users);
$id = 0;
while($id != 10){
$id = $id + 1;
if($userRow['userService'.$id] === 'null'){
}else if(!empty($userRow['userService'.$id])){
echo "<tr class=services ><td name=".$num."><input type=submit onClick='buy(".$userRow['userService'.$id].",".$userRow['userServiceCost'.$id].",".$userRow['userServiceEmail'].")'></td><td width='250' align='center'>".$userRow['userService'.$id]."</td><td width='250' align='center'>".$userRow['userServiceCost'.$id]."</td><td width='250' align='center'>".$userRow['userServiceDes'.$id]."</td><td width='250' align='center'>".$userRow['userServiceName'.$id]."</td></tr>";

//echo $id."Error: ".$con->error;
$num = $num + 1;
$users = $users + 1;
echo "All Services Loaded";
echo "</table></center>";
<span class="text-danger"><?php echo $msg; ?></span>
<script lang="text/javascript" src="scripts/home/index.js"></script>
<script type="text/javascript">

function buy(sid, scost, semail){

<?php ob_end_flush(); ?>

Answer Source

As I mentioned in the comments above, you need to use quotes for all attributes and JS calls. Additionally, rembember that the contents of your onClick must be valid JS. As such, the strings you are passing as arguments to the function should be in quotes.

echo '<tr class="services"><td name="'.$num.'"><input type="submit" onClick="buy(\''.$userRow['userService'.$id].'\',\''.$userRow['userServiceCost'.$id].'\',\''.$userRow['userServiceEmail'].'\')"></td><td width="250" align="center">'.$userRow['userService'.$id].'</td><td width="250" align="center">'.$userRow['userServiceCost'.$id].'</td><td width="250" align="center">'.$userRow['userServiceDes'.$id].'</td><td width="250" align="center">'.$userRow['userServiceName'.$id].'</td></tr>';