|
Hi Richard,
Sorry for calling you out but I did because I needed an urgent help.
This is the code you helped me out with (Thanks again).
//markup
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Forms</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js"></script>
<style type="text/css">
.bs-example{
margin-left: 250px;
margin-top: 30px;
}
</style>
</head>
<body>
<form class="form-inline" action="<?php echo get_option('siteurl'); ?>/forms/preview.php" id="contactForm" role="form" method="post">
<div class="form-group">
<label for="employeename">Employee Name</label><br>
<input type="text" name="employeename" id="employeename" style="width:375px;" placeholder="your name..." class="form-control" value="" class="required requiredField" />
</div>
<div class="form-group">
<label for="ttitle">Title</label><br>
<input type="text" name="ttitle" id="ttitle" style="width:375px;" placeholder="Your title..." class="form-control" value="" class="required requiredField" />
</div><br><br>
<script id="row-template" type="text/x-handlebars-template">
<div>
<!--reseed attribute IDs in case of gap resulting from deletions -->
<input type="hidden" name="rowIDs" value="{{rowNumber}}" />
<div class="form-group">
<label for="sourcename1{{rowNumber}}">Name</label><br>
<input type="text" name="sourcename1{{rowNumber}}" id="sourcename1{{rowNumber}}" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="sourceaddress1{{rowNumber}}">Address</label><br>
<input type="text" name="sourceaddress1{{rowNumber}}" id="sourceaddress1{{rowNumber}}" style="width:250px;" class="form-control" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="income1{{rowNumber}}">Income</label><br>
<input type="text" style="width:250px;" class="form-control" name="income1{{rowNumber}}" id="income1{{rowNumber}}" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<input id="Button{{rowNumber}}" type="button" rel="remove-row" value="Remove" />
</div>
</script>
<div id="addrow" data-row-count="1" data-template-id="row-template">
<div>
<!--
<input type="hidden" name="rowIDs" value="1" />
<div class="form-group">
<label for="sourcename1">Name</label><br>
<input type="text" name="sourcename1[]" id="sourcename1" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="sourceaddress1">Address</label><br>
<input type="text" name="sourceaddress1[]" id="sourceaddress1" style="width:250px;" class="form-control" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="income1">Income</label><br>
<input type="text" name="income1[]" id="income1" style="width:250px;" class="form-control" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
<input type="button" value="Add More" rel="add-row" data-target="addrow" />
</div>
</div>
</div><br><br>
<script id="row-template-2" type="text/x-handlebars-template">
<div>
<!--reseed attribute IDs in case of gap resulting from deletions -->
<input type="hidden" name="row2IDs" value="{{rowNumber}}" />
<div class="form-group">
<input type="text" style="width:250px;" class="form-control" name="spousename{{rowNumber}}" id="spousename{{rowNumber}}" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<input type="text" style="width:250px;" class="form-control" name="spouseAddress{{rowNumber}}" id="spouseAddress{{rowNumber}}" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<input type="text" style="width:250px;" class="form-control" name="spouseIncome{{rowNumber}}" id="spouseIncome{{rowNumber}}" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<input id="Button{{rowNumber}}" type="button" rel="remove-row" value="Remove" />
</div>
</script>
<div id="addrow2" data-row-count="1" data-template-id="row-template-2">
<div>
<!--
<input type="hidden" name="row2IDs" value="1" />
<div class="form-group">
<label for="spousename">Name</label><br>
<input type="text" style="width:250px;" class="form-control" name="spousename[]" id="spousename" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="spouseAddress">Address</label><br>
<input type="text" style="width:250px;" class="form-control" name="spouseAddress[]" id="spouseAddress" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
</div>
<div class="form-group">
<label for="spouseIncome">Income</label><br>
<input type="text" style="width:250px;" class="form-control" name="spouseIncome[]" id="spouseIncome" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<?=$nameError;?>
<?php } ?>
<input type="button" value="Add More" rel="add-row" data-target="addrow2" />
</div>
</div>
</div> <br><br>
<div class="form-group">
<label for="email">Email</label><br>
<input type="text" style="width:750px;" class="form-control" name="email" id="email" value="" class="required requiredField email" />
<?php if($emailError != '') { ?>
<?=$emailError;?>
<?php } ?>
</div>
<button type="submit" class="btn btn-primary">Submit</button><br>
<input type="hidden" name="submitted" id="submitted" value="true" />
</form>
<script type='text/javascript'>
$(function(){
var templates = {
"row-template": Handlebars.compile($("#row-template").html()),
"row-template-2": Handlebars.compile($("#row-template-2").html())
};
$("form").on("click", "input[rel='add-row']", function(){
var containerId = $(this).data("target");
var container = $("#" + containerId);
var templateId = container.data("templateId");
var template = templates[templateId];
var rowCount = container.data("rowCount");
rowCount++;
var context = { rowNumber: rowCount };
var html = template(context);
container.append(html);
container.data("rowCount", rowCount);
});
$("form").on("click", "input[rel='remove-row']", function(){
var row = this.parentNode;
var container = row.parentNode;
container.removeChild(row);
});
});
</script>
</body>
</html>
//Server side:
".print_r($_POST, 1)."";
if(isset($_POST['employeename']))
$employeename = $_POST['employeename'];
if(isset($_POST['ttitle']))
$ttitle = $_POST['ttitle'];
$rowIDs = $_POST['rowIDs'];
echo $employeename .' ';
echo $ttitle .' ';
for ($id = 0; $id < $rowIDs; $id++){
$sourcename1 = $_POST['sourcename1'][$id];
$sourceaddress1 = $_POST['sourceaddress1'][$id];
$income1 = $_POST['income1'][$id];
$spousename = $_POST['spousename'][$id];
$spouseAddress = $_POST['spouseAddress'][$id];
$spouseIncome = $_POST['spouseIncome'][$id];
echo 'Name: '. $sourcename1 .' ';
echo 'Address: '. $sourceaddress1.' ';
echo 'Income: '. $income1.' ';
echo 'Name: '. $spousename .' ';
echo 'Address: '. $spouseAddress.' ';
echo 'Income: '. $spouseIncome.' ';
}
?>
<input type='text' name='employeename' value="<?php echo="" $employeename?="">">
<input type='text' name='ttitle' value="<?php echo="" $ttitle;="" ?="">">
<input type='text' name='sourcename1[]' value="<?php echo="" $sourcename1;="" ?="">">
<input type='text' name='sourceaddress1[]' value="<?php echo="" $sourceaddress1;="" ?="">">
<input type='text' name='income1[]' value="<?php echo="" $income1;="" ?="">">
There are two problems here and I think they are all related.
1, When I run the code, it is displaying only one row of data.
When I click to add another row and then fill enter data into that row, it doesn't display it.
2, Second issue is the error I am getting which says,
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 13
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 14
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 15
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 16
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 17
Notice: Undefined offset: 1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 18
Any ideas what I am doing wrong?
Man, I am supposed to demo this app this afternoon.
Many thanks in advance
modified 23-Feb-17 8:59am.
|
|
|
|
|
samflex wrote: $sourcename1 = $_POST['sourcename1'][$id];
That should be:
$sourcename1 = $_POST['sourcename1' . $id];
Same for the other fields.
samflex wrote: When I run the code, it is displaying only one row of data.
Because you're only rendering a single row in the HTML. The additional rows are added via script when you click the button.
samflex wrote: When I click to add another row and then fill enter data into that row, it doesn't display it.
What do you mean?
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
phew!
Thanks so much Richard for coming to my rescue again.
The reason I changed to this:
$sourcename1 = $_POST['sourcename1'][$id];
was because the one you suggested I use which I just used again just now was giving the error below:
tice: Undefined index: sourcename10 in C:\xampp\htdocs\disclosures\forms\preview.php on line 13
My concern was that I didn't screw something up in the markup. I tried to follow the solution you provided.
What I meant by your question is that when I Add another row, it is not being captured on my php server code.
|
|
|
|
|
samflex wrote: Undefined index: sourcename10 in C:\xampp\htdocs\disclosures\forms\preview.php on line 13
Because you're using:
for ($id = 0; $id < $rowIDs; $id++)
so $id is the index, not the value.
Use the "foreach" version[^], as I suggested, and $id will be the value:
for ($rowIDs as $id)
If you want to stick to the standard for loop, you'll need to use:
for ($index = 0; $index < $rowIDs; $index++){
$id = $rowIDs[$index];
$sourcename1 = $_POST['sourcename1' . $id];
...
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Believe me sir,
I see your solutions as money in the bank.
However, when I tried that original FOR loop you gave me, I got this:
rning: Invalid argument supplied for foreach() in C:\xampp\htdocs\disclosures\forms\preview.php on line 12
Now, I just tried your latest solution and this is what I am getting.
Notice: Undefined index: sourcename11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 14
Notice: Undefined index: sourceaddress11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 15
Notice: Undefined index: income11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 16
Notice: Undefined index: spousename1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 17
Notice: Undefined index: spouseAddress1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 18
Notice: Undefined index: spouseIncome1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 19
Name:
Address:
Income:
-----------
Name:
Address:
Income:
I am just wandering if the problem is in the markup.
Kind of frustrating.
I really appreciate your help.
modified 21-Feb-17 15:19pm.
|
|
|
|
|
Try changing the name of the hidden inputs to rowIDs[] , both in the Handlebars template and the static HTML row.
<input type="hidden" name="rowIDs[]" value="{{rowNumber}}" />
...
<input type="hidden" name="rowIDs[]" value="1" />
$rowIDs = $_POST['rowIDs'];
for ($rowIDs as $id) {
...
}
It looks like PHP needs the [] on the end of the form field name in order to treat the posted values as an array.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Right.
I have added them and now this:
Notice: Undefined index: sourcename11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 13
Notice: Undefined index: sourceaddress11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 14
Notice: Undefined index: income11 in C:\xampp\htdocs\disclosures\forms\preview.php on line 15
Notice: Undefined index: spousename1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 16
Notice: Undefined index: spouseAddress1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 17
Notice: Undefined index: spouseIncome1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 18
Same errors. Unreal!
Thanks for your patience sir.
|
|
|
|
|
OK, remove the "1" from the field names in the template, and from the PHP script:
<input type="text" name="sourcename{{rowNumber}}" id="sourcename{{rowNumber}}" value="" class="required requiredField" />
<!--
$sourcename1 = $_POST['sourcename' . $id];
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Nope,
Infact changing ROWIDS to rowIDs[] seems to have multiplied how many of those errors are rendered.
It's like million records (errors) displayed when infact, only entered records into two rows.
Who would have thought this would be this challenging.
Maybe I can all over from the markup to make that it is correct before looking at the php server side script?
Sorry for all the inconvenience sir.
|
|
|
|
|
Looks like you've already added [] to some fields that don't need it.
<script id="row-template" type="text/x-handlebars-template">
<div>
<!--reseed attribute IDs in case of gap resulting from deletions -->
<input type="hidden" name="rowIDs[]" value="{{rowNumber}}" />
<div class="form-group">
<label for="sourcename{{rowNumber}}">Name</label><br>
<input type="text" name="sourcename{{rowNumber}}" id="sourcename{{rowNumber}}" value="" class="required requiredField" />
</div>
<div class="form-group">
<label for="sourceaddress{{rowNumber}}">Address</label><br>
<input type="text" name="sourceaddress{{rowNumber}}" id="sourceaddress{{rowNumber}}" style="width:250px;" class="form-control" value="" class="required requiredField" />
</div>
<div class="form-group">
<label for="income{{rowNumber}}">Income</label><br>
<input type="text" style="width:250px;" class="form-control" name="income{{rowNumber}}" id="income{{rowNumber}}" value="" class="required requiredField" />
</div>
<input id="Button{{rowNumber}}" type="button" rel="remove-row" value="Remove" />
</div>
</script>
<div id="addrow" data-row-count="1" data-template-id="row-template">
<div>
<input type="hidden" name="rowIDs[]" value="1" />
<div class="form-group">
<label for="sourcename1">Name</label><br>
<input type="text" name="sourcename1" id="sourcename1" value="" class="required requiredField" />
<?php if($nameError != '') { ?>
<span class="error"><?=$nameError;?></span>
<?php } ?>
</div>
<div class="form-group">
<label for="sourceaddress1">Address</label><br>
<input type="text" name="sourceaddress1" id="sourceaddress1" style="width:250px;" class="form-control" value="" class="required requiredField" />
<?php if($addressError != '') { ?>
<span class="error"><?=$addressError;?></span>
<?php } ?>
</div>
<div class="form-group">
<label for="income1">Income</label><br>
<input type="text" name="income1" id="income1" style="width:250px;" class="form-control" value="" class="required requiredField" />
<?php if($incomeError != '') { ?>
<span class="error"><?=$incomeError;?></span>
<?php } ?>
</div>
<input type="button" value="Add More" rel="add-row" data-target="addrow" />
</div>
</div>
$rowIDs = $_POST['rowIDs'];
for ($rowIDs as $id) {
$sourcename = $_POST['sourcename' . $id];
$sourceaddress = $_POST['sourceaddress' . $id];
$income1 = $_POST['income' . $id];
echo 'Name: '. $sourcename1 . '<br />';
echo 'Address: '. $sourceaddress1 . '<br />';
echo 'Income: '. $income1 . '<br />';
}
NB: You'll need a separate loop to read the spouse name, address and income.
If it still doesn't work, check what values are being submitted to your PHP script.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I just tried your latest code. I entered records into the first row, dynamically added another row and populated that as well.
Below is the debug output as well as the errors.
This AngularJS dynamic code is so gorgeous and works great in terms of the markup but this has been an unbelievable nightmare for me.
Richard, sir, I am wondering if you can give me a hint on how to make the original code I posted look as pretty as this one you did.
What I mean is that the page once loaded looks nice and is nicely laid out but when you click to Add another row, the new row looks different.
Since I can't get this to work and I begged my manager for another, perhaps that might be easier to implement?
DEBUG POST DATA: Array
(
[employeename] =>
[ttitle] =>
[rowIDs] => 1
[sourcename1] => John Doe
[sourceaddress1] => 123 Doe street
[income1] => $36,000.00
[sourcename12] => Jane Doe
[sourceaddress12] => 23 Jane Way
[income12] => $67,000.00
[spousename] => Array
(
[0] =>
)
[spouseAddress] => Array
(
[0] =>
)
[spouseIncome] => Array
(
[0] =>
)
[email] =>
[submitted] => true
)
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\disclosures\forms\preview.php on line 14
Notice: Undefined variable: sourcename1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 28
"> Notice: Undefined variable: sourceaddress1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 29
"> Notice: Undefined variable: income1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 30
"> Notice: Undefined variable: spousename in C:\xampp\htdocs\disclosures\forms\preview.php on line 31
"> Notice: Undefined variable: spouseAddress in C:\xampp\htdocs\disclosures\forms\preview.php on line 32
"> Notice: Undefined variable: spouseIncome in C:\xampp\htdocs\disclosures\forms\preview.php on line 33
|
|
|
|
|
samflex wrote: [rowIDs] => 1
...
sourcename12
Why have you ignored my suggestion to remove the extra "1" from the field names in the template, and to add the [] suffix to the name of the rowIDs fields?
If you'd followed my suggestions, the submitted data would look like:
[rowIDs] => Array
(
[0] => 1
[1] => 2
)
[sourcename1] => John Doe
[sourceaddress1] => 123 Doe street
[income1] => $36,000.00
[sourcename2] => Jane Doe
[sourceaddress2] => 23 Jane Way
[income2] => $67,000.00
NB: rowIDs is an array, and the fields from the row have sequential names - sourcename1 , sourcename2 , etc.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Why have you ignored my suggestion to remove the extra "1" from the field names in the template, and to add the [] suffix to the name of the rowIDs fields? Confused |
I didn't sir.
I thought the code you showed there was the correct code I should use.
I copied the code and that's the code I tested with and that's actually the code I am testing with now.
The only change I made now was to remove the "1" in the line below:
<input type="hidden" name="rowIDs[]" value="" /> and used it as you see it now.
The good news is that for the first time, I did not get the "ivalid'''
Here is what it looks like now and the current error. I also noticed that one fieldname says, sourcename and down the line, it says sourcename1. Same with sourceaddress and income.
Are they by design?
BUG POST DATA: Array
(
[employeename] => James Brown
[ttitle] => IT Manager
[rowIDs] => Array
(
[0] =>
)
[sourcename1] => Mary Tyler Moore
[sourceaddress1] => 123 Tyler Street
[income1] => $2000,000.00
[email] =>
[submitted] => true
)
James Brown
IT Manager
Notice: Undefined index: sourcename in C:\xampp\htdocs\disclosures\forms\preview.php on line 17
Notice: Undefined index: sourceaddress in C:\xampp\htdocs\disclosures\forms\preview.php on line 18
Notice: Undefined index: income in C:\xampp\htdocs\disclosures\forms\preview.php on line 19
Notice: Undefined variable: sourcename1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 21
Name:
Notice: Undefined variable: sourceaddress1 in C:\xampp\htdocs\disclosures\forms\preview.php on line 22
Address:
Income:
|
|
|
|
|
samflex wrote: The only change I made now was to remove the "1" in the line below:
And by doing that, you've broken the code I posted in yet another way!
Put the value="1" back in on that line. You're looking for a POST data of:
[rowIDs] => Array
(
[0] => 1
)
Then the loop will find the first ID is "1", and on the first iteration, will look for "sourcename1".
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
YEA!!!!
IT IS WORKING!!!!!!
Oh gosh, I can't thank you enough for saving me yet again.
Your patience is incredible and will be emulated.
Thank you so much Richard.
You have tremendous and thank you for sharing.
You will be greatly rewarded for your generosity.
I got pulled into offsite work yesterday and I am just getting back to you
Many THANKS sir.
|
|
|
|
|
Glad to hear it!
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hi
I have one application that receives the images from bing, I am using the api of bing, but I want save the images for I use them without internet. How I can do this? Somebody can help me?
|
|
|
|
|
In javascript? No - you do not have access to the user's hard drive for security reasons. The only way to save them to the user HDD is to download them, and let the user decide to store them or not - but even then, your app has no access to them after that.
You almost certainly want to look at a server side solution here, not client side.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Hi. Thanks for your answer. Maybe I didn't explain in detail the situation.
Now, I see the images in my application from bing, using bing API. But when I turn off internet I want that the retreived images stay visible, so How I can do this? Is it possible in JS? Or in another way?
|
|
|
|
|
Member 13014278 wrote: I have one application that receives the images from bing, I am using the api of bing, Depends on how you're getting them. If you are getting them from the API, at that point you could save them to disk.
There are two kinds of people in the world: those who can extrapolate from incomplete data.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
I'm creating an chrome extension with angular-cli, I did the popup extension and it work fine, but I want to initiate the application (bootstrap) from another way, example when the browser call a options page of the extension, or when I want to run an another .html wich I have on extension.
The question is, how to configure the angular-cli to initiate the app from another .html file wich is no just index.html.
Danke
|
|
|
|
|
Im using this function to go through my values that are in an array to find if they equal a small straight ("1234" or "2345" or "3456");
I decided the way id get this to work is by using regular expression , which worked if I got for example "12345". However if i got duplicates of a value , example "12234" it would not work. I used the filter function to get rid of the duplicate values, which worked however when it comes to my regular expressions it keeps returning null even when my x value returns for example "1234". Im thinking there has something to do with the filter function since without it i get values returned but I need it in order to get rid of duplicate values. console[^]
function smstraight(){
var score=0;
var x=dice_value.sort();
x=x.filter(function(item,index,inputArray){
return x=inputArray.indexOf(item) ==index;
}).join("");
var r1= /\B(1234)/g;
var a= x.match(r1);
var r2=/\B(2345)/g;
var b= x.match(r2);
var r3=/\B(3456)/g;
var c= x.match(r3);
console.log(x);
if(b== "2345" || a== "1234"|| c=="3456" || x== "12345"||x=="23456"){
console.log("hey it works");
score+= 30;
$('.sm').html(score);
}
}
|
|
|
|
|
I don't think RegEx is the right tool for this. You'd be better served by iterating the array and evaluating for unique values and building a result in the same step:
function smstraight(){
var score=$('.sm').html(score);
var source=dice_value.sort();
var result = [source[0]];
for(var i=1; i < source.length, i++){
if(source[i] == source[i-1] + 1) {
result.push(source[i]);
}
}
if(result.length == 4)
{
console.log("hey it works");
$('.sm').html(score+30);
}
}
Please not I just wrote this in the post, so it's not exactly tested and should be treated as conceptual.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|
|
I wanted to take this code and change the image.src and make it into an ajax request or something like that to have the source for the photos be a user's flickr photos. I tried doing this on my own using the flickr api, but it wouldn't work. Does anyone know how I could do this? Thanks!
JavaScript code is pasted below from this person's code pen:
Infinite Scroll + Pagination[^]
function getPageId(n) {
return 'article-page-' + n;
}
function getDocumentHeight() {
const body = document.body;
const html = document.documentElement;
return Math.max(
body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight
);
};
function getScrollTop() {
return (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
}
function getArticleImage() {
const hash = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER);
const image = new Image;
image.className = 'article-list__item__image article-list__item__image--loading';
image.src = 'http://api.adorable.io/avatars/250/' + hash;
image.onload = function() {
image.classList.remove('article-list__item__image--loading');
};
return image;
}
function getArticle() {
const articleImage = getArticleImage();
const article = document.createElement('article');
article.className = 'article-list__item';
article.appendChild(articleImage);
return article;
}
function getArticlePage(page, articlesPerPage = 16) {
const pageElement = document.createElement('div');
pageElement.id = getPageId(page);
pageElement.className = 'article-list__page';
while (articlesPerPage--) {
pageElement.appendChild(getArticle());
}
return pageElement;
}
function addPaginationPage(page) {
const pageLink = document.createElement('a');
pageLink.href = '#' + getPageId(page);
pageLink.innerHTML = page;
const listItem = document.createElement('li');
listItem.className = 'article-list__pagination__item';
listItem.appendChild(pageLink);
articleListPagination.appendChild(listItem);
if (page === 2) {
articleListPagination.classList.remove('article-list__pagination--inactive');
}
}
function fetchPage(page) {
articleList.appendChild(getArticlePage(page));
}
function addPage(page) {
fetchPage(page);
addPaginationPage(page);
}
const articleList = document.getElementById('article-list');
const articleListPagination = document.getElementById('article-list-pagination');
let page = 0;
addPage(++page);
window.onscroll = function() {
if (getScrollTop() < getDocumentHeight() - window.innerHeight) return;
addPage(++page);
};
|
|
|
|
|
Greetings mates.
This is really a jQuery question but since is integrated with classic asp, it could be deleted if I post it on jquery for asp.net forum, hence here.
I am building a questionnaire (sort of) form and some of responses might require additional textboxes.
As a result, we are trying to use jquery or just regular JavaScript to give participants the opportunity to add additional rows to each div should they wish to.
So far, the simple JavaScript I am using is not working.
For instance, I have a div with ID of "addrow". with an ADD button next to that div.
Our expectation is that if the participant clicks that ADD button, the textboxes inside that div should be cloned to as many rows as they wish.
However, when I click the ADD button, it adds just one textbox.
Can someone please help?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Questionnaires</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style type="text/css">
.bs-example{
margin-left: 250px;
margin-top: 30px;
}
</style>
<script type="text/javascript">
var NumOfRow = 1;
function Button1_onclick(){
NumOfRow++;
var addrow = document.getElementById('addrow');
var newDiv = document.createElement('div');
newDiv.setAttribute('id','innerDiv'+NumOfRow);
var newSpan = document.createElement('span');
newSpan.innerHTML = "Complete the following";
var newTextBox = document.createElement('input');
newTextBox.type = 'text';
newTextBox.setAttribute('id','sourcename1'+NumOfRow);
newTextBox.setAttribute('id','sourceaddress1'+NumOfRow);
newTextBox.setAttribute('id','income1'+NumOfRow);
var newButton = document.createElement('input');
newButton.type = 'button';
newButton.value = 'Remove';
newButton.id = 'btn'+NumOfRow;
newButton.onclick = function RemoveEntry() {
var addrow = document.getElementById('addrow');
addrow.removeChild(this.parentNode);
}
newDiv.appendChild(newSpan);
newDiv.appendChild(newTextBox);
newDiv.appendChild(newButton);
addrow.appendChild(newDiv);
}
</script>
</head>
<body>
<div class="bs-example">
<form class="form-inline" action="process.asp" role="form">
<div class="form-group">
<label for="employeename">Employee Name</label><br>
<input type="text" style="width:375px;" class="form-control" name="employeename" id="employeename" placeholder="Employee name...">
</div>
<div class="form-group">
<label for="ttitle">Title</label><br>
<input type="text" style="width:375px;" class="form-control" name="ttitle" id="ttitle" placeholder="Title...">
</div><br><br><br>
<div id="addrow">
<div class="form-group">
<label for="sourcename1">Name</label><br>
<input type="text" style="width:250px;" class="form-control" name="sourcename1" id="sourcename1" placeholder="Name of income source...">
</div>
<div class="form-group">
<label for="sourceaddress1">Address</label><br>
<input type="text" style="width:250px;" class="form-control" name="sourceaddress1" id="sourceaddress1" placeholder="Address of income source">
</div>
<div class="form-group">
<label for="income1">Income</label><br>
<input type="text" style="width:250px;" class="form-control" name="income1" id="income1" placeholder="income...">
</div></div><input id="Button1" type="button" value="Add More" onclick="Button1_onclick()" /> <br><br><br>
<div class="form-group">
<label for="spousename">Name</label><br>
<input type="text" style="width:250px;" class="form-control" name="spousename" id="spousename" placeholder="Spouse Name...">
</div>
<div class="form-group">
<label for="spouseAddress">Address</label><br>
<input type="text" style="width:250px;" class="form-control" name="spouseAddress" id="spouseAddress" placeholder="Address of income source...">
</div>
<div class="form-group">
<label for="spouseIncome">Income</label><br>
<input type="text" style="width:250px;" class="form-control" name="spouseIncome" id="spouseIncome" placeholder="Income...">
</div><br><br><br>
<div class="form-group">
<label for="dividentname">Name</label><br>
<input type="email" style="width:250px;" class="form-control" name="dividentname" id="dividentname" placeholder="Divident name...">
</div>
<div class="form-group">
<label for="dividentaddress">Address</label><br>
<input type="text" style="width:250px;" class="form-control" name="dividentaddress" id="dividentaddress" placeholder="Address of divident...">
</div>
<div class="form-group">
<label for="dividentAmt">Divident Amount</label><br>
<input type="text" style="width:250px;" class="form-control" name="reimbursmentName" id="reimbursmentName" placeholder="Divident amount...">
</div><br><br><br>
<div class="form-group">
<label for="reimbursmentName">Name</label><br>
<input type="text" style="width:250px;" class="form-control" name="reimbursmentName" id="reimbursmentName" placeholder="Reimbursement name...">
</div>
<div class="form-group">
<label for="reimburseAddr">Address of Reimbursement</label><br>
<input type="password" style="width:250px;" class="form-control" name="reimburseAddr" id="reimburseAddr" placeholder="Reimbursement Address...">
</div>
<div class="form-group">
<label for="remursementAmt">Reinbursement Amount</label><br>
<input type="text" style="width:250px;" class="form-control" name="remursementAmt" id="remursementAmt" placeholder="Remursement Amount">
</div><br><br><br>
<div class="form-group">
<label for="inputHonoraria">Honoraria</label><br>
<input type="text" style="width:250px;" class="form-control" name="inputHonoraria" id="inputHonoraria" placeholder="Honoraria from a single source...">
</div>
<div class="form-group">
<label for="giftname">Name</label><br>
<input type="text" style="width:250px;" class="form-control" name="giftname" id="giftname" placeholder="Gift name...">
</div>
<div class="form-group">
<label for="giftaddress">Gift Address</label><br>
<input type="text" style="width:250px;" class="form-control" name=giftaddress" id="giftaddress" placeholder="Address of gift...">
</div><br><br><br>
<div class="form-group">
<label for="giftamount">Gift Amount</label><br>
<input type="text" style="width:250px;" class="form-control" name=giftamount" id="giftamount" placeholder="Gift amount...">
</div>
<div class="form-group">
<label for="orgname">Name of Organization</label><br>
<input type="text" style="width:250px;" class="form-control" name="orgname" id="orgname" placeholder="Name of organization...">
</div>
<div class="form-group">
<label for="orgaddresss">Address of Organization</label><br>
<input type="text" style="width:250px;" class="form-control" name="orgaddresss" id="orgaddresss" placeholder="Address of organization...">
</div><br><br><br>
<div class="form-group">
<label for="creditorname">Name of Creditor</label><br>
<input type="text" style="width:250px;" class="form-control" name="creditorname" id="creditorname" placeholder="Name of creditor...">
</div>
<div class="form-group">
<label for="creditoraddress">Address of creditor</label><br>
<input type="text" style="width:250px;" class="form-control" name="creditoraddress" id="creditoraddress" placeholder="Address of creditor...">
</div>
<div class="form-group">
<label for="creditAmt">Credit Amount</label><br>
<input type="text" style="width:250px;" class="form-control" name="creditAmt" id="creditAmt" placeholder="Credit Amount...">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<br>
</div>
</body>
</html>
Many thanks for your help.
modified 17-Feb-17 8:55am.
|
|
|
|