|
Please do not expect people to go searching for details of your problem, post the details in your question.
|
|
|
|
|
A forum member already solved it for you. But it is quite rude to only post a link and expect us to go hunt down what the issue is.
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 following this example
There's a code block about halfway down where there is
<script type="text/javascript">
$(function () {
var chat = $.connection.chatHub;
chat.client.broadcastMessage = function (name, message) {
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
$('#discussion').append('<li>' + encodedName
+ ': ' + encodedMsg + '</li>');
};
$('#displayname').val(prompt('Enter your name:', ''));
$('#message').focus();
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
chat.server.send($('#displayname').val(), $('#message').val());
$('#message').val('').focus();
});
});
});
</script>
I tried adding
$.connection.url = "myurl"
right above the $.connection, but I then get "Cannot read property '' of undefined"
I take this to mean that the ".connection' object is not set.
What's wrong here? How does the URL to the server get set??
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
modified 2-Mar-17 18:33pm.
|
|
|
|
|
|
Using IE11. I only get this error on IE. The app works fine in Chrome.
Here's the JS
<script src="/Scripts/jquery-3.1.1.min.js"></script>
<script src="/Scripts/jquery.signalR-2.1.2.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var proxy = $.connection.DashboardHub;
proxy.client.NotifyAllClientsOfChanges = function () {
var searchUrl = "Home/GetData";
$.ajax({
url: searchUrl,
type: "POST",
success: function (data) {
$("#divData").html(data);
}
});
};
});
When I run the file jquery-3.1.1.min.js opens, and this is highligted:
h=a.indexOf(" ")
and I get the error "Object doesn't support property or method 'indexOf'"
Google results say that IE doesn't support this. Anyone heard of this? Any way to make this work?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Even though this forum got me to where I am now on this project due largely the generous help of Richard Deeming, I have tried hard to avoid coming back here but I am having so much difficulty getting to the finish line which is this last bit.
First, on the screen that we use to preview data, I have this:
<body>
<form action='final.php' method = 'POST'>
<input type="hidden" name="employeename" value="<?php echo $employeename; ?>">
<input type="hidden" name="ttitle" value="<?php echo $ttitle; ?>">
<input type="hidden" name="email" value="<?php echo $email; ?>">
<?php foreach ($rowIDs as $id) { ?>
<input type="hidden" name="sourcename" value="<?php echo $_POST['sourcename' . $id]; ?>">
<input type="hidden" name="sourceaddress" value="<?php echo $_POST['sourceaddress' . $id]; ?>">
<input type="hidden" name="income" value="<?php echo $_POST['income' . $id]; ?>">
<?php }?>
<?php foreach ($row2IDs as $id) { ?>
<input type="hidden" name="spousename" value="<?php echo $_POST['spousename' . $id]; ?>">
<input type="hidden" name="spouseAddress" value="<?php echo $_POST['spouseAddress' . $id]; ?>">
<input type="hidden" name="spouseIncome" value="<?php echo $_POST['spouseIncome' . $id]; ?>">
<?php } ?>
<a href="javascript:history.go(-1)" data-icon="back" data-role="button" data-theme="b">Return to make changes</a>
<input type="submit" value="submit" />
</form>
There is more but I thought this is relevant part.
Then on the next page (final.php) after user clicks the submit button, I have this:
<?php
$conn = mysqli_connect("localhost","myusername","mypass","myDB");
if(!$conn) {
die('Problem in database connection: ' . mysql_error());
}
$query = 'INSERT INTO `mydb`.`wp_mytable` ( `employeename`, `ttitle`, `email` )'
. ' VALUES ( ? , ? , ? )';
if( $sth = mysqli_prepare($conn,$query) ) {
mysqli_stmt_bind_param($sth,'sss'
,$_POST["employeename"]
,$_POST["ttitle"]
,$_POST["email"]
);
if( mysqli_stmt_execute($sth) ) {
echo 'Successfully created employee record;';
} else {
printf("Error: %s\n",mysqli_stmt_error($sth));
}
} else {
printf("Error: %s\n",mysqli_connect_error($conn));
}
$last_id = mysqli_insert_id($conn);
$sql = 'INSERT INTO `myDB`.`wp_myTable` ( `employeeID`'
. ', `sourcename`, `sourceaddress`, `income`,`spousename`,`spouseAddress`,`spouseincome` )'
. ' VALUES ( ? , ? , ? , ? , ? , ? , ? )';
if( $sth = mysqli_prepare($conn,$sql) ) {
for($i=0; $i<count($_POST['sourcename']); $i++)
{
$stmt->execute(array($last_id,
$_POST['sourcename'][$i],
$_POST['sourceaddress'][$i],
$_POST['income'][$i]),
$_POST['spousename'][$i],
$_POST['spouseAddress'][$i],
$_POST['spouseIncome'][$i]));
}
if( mysqli_stmt_execute($sth) ) {
echo '<h1>Success!</h1><br>Your record successfully submitted <br><br><h1>Thank You!</h1';
} else {
printf("Error: %s\n",mysqli_stmt_error($sth));
}
} else {
printf("Error: %s\n",mysqli_connect_error($conn));
}
?>
If I can get records to submit correctly, I am done with this project.
However, I am stuck here with the following error messages:
Notice: Undefined variable: stmt in C:\xampp\htdocs\closures\forms\final.php on line 37
Fatal error: Call to a member function execute() on null in C:\xampp\htdocs\closures\forms\final.php on line 37
This error starts on this line:
$stmt->execute(array($last_id,...
I have spent my entire weekend on this without any progress. I will be truly grateful once again for solution.
Thanks
modified 28-Feb-17 11:38am.
|
|
|
|
|
samflex wrote: Notice: Undefined variable: stmt in C:\xampp\htdocs\closures\forms\final.php on line 37 You have never declared the variable stmt but you are trying to use it in the statement at line 37. You probably meant to write
$sth->execute(array($last_id,
Using more descriptive variable names would help to find such errors more easily.
|
|
|
|
|
Thank you very much Richard.
Resolved those issues but created two new ones:
Warning: mysqli_stmt::execute() expects exactly 0 parameters, 4 given in C:\xampp\htdocs\closures\forms\final.php on line 43
Error: No data supplied for parameters in prepared statement
Any ideas?
|
|
|
|
|
|
I think the issue is that I have 7 parameters and need to bound them with the $sth as in
mysqli_stmt_bind_param($sth,'sssssss'($last_id, ... but how do I integrate this with array?
|
|
|
|
|
|
Thanks Richard but I know how to do that though.
You can see I have that on one of the INSERT statements in my original post.
I just can't use with array.
That's where the struggle comes in.
|
|
|
|
|
samflex wrote: I just can't use with array. Why not, it is exactly the same issue?
|
|
|
|
|
Sorry sir but why can't I get a sample from you if you know how?
I would have solved it by now if I know the answer.
I have been playing around with it since your last response and can't get it to work.
|
|
|
|
|
samflex wrote: can't get it to work. Sorry but I do not understand what your problem is. Whether you have individual items, or items in an array, you can still provide their references in your call to mysqli_stmt_bind_param
|
|
|
|
|
Ok thanks for your help.
Hopefully, someone else will be able to help.
Here is my INSERT statement:
$sql = 'INSERT INTO `disclosures`.`wp_disclosures` ( `employeeID`'
. ', `sourcename`, `sourceaddress`, `income`,`spousename`,`spouseAddress`,`spouseincome` )'
. ' VALUES ( ? , ? , ? , ? , ? , ? , ? )';
if( $sth = mysqli_prepare($conn,$sql) ) {
for($i=0; $i<count($last_id); $i++)
{
$sth->execute(array($last_id,
$_POST['sourcename'][$i],
$_POST['sourceaddress'][$i],
$_POST['income'][$i]),
$_POST['spousename'][$i],
$_POST['spouseAddress'][$i],
$_POST['spouseIncome'][$i]);
}
Just given the way the INSERT statement is written, I am getting the following error:
rning: mysqli_stmt::execute() expects exactly 0 parameters, 4 given in C:\xampp\htdocs\closures\forms\final.php on line 43
Error: No data supplied for parameters in prepared statement
But I believe that I am getting those errors because I could not bind the parameters like I did with the other INSERT statement like this:
( $sth = mysqli_prepare($conn,$query) ) {
mysqli_stmt_bind_param($sth,'sss'
,$_POST["employeename"]
,$_POST["ttitle"]
,$_POST["email"]
);
Notice this line:
sqli_stmt_bind_param($sth,'sss'
I need to find a way to add something like this:
sqli_stmt_bind_param($sth,'ssssssss' to my INSERT statement to get resolve the problem.
Just can't figure out how to integrate that with the mysqli_prepare(...) statement or the $sth->execute(array($last_id,... array statement.
|
|
|
|
|
You are just repeating your original question, and I already explained the answer. What exactly is the problem in adding the parameter references to the mysqli_stmt_bind_param statement? All you need is:
mysqli_stmt_bind_param($sth,'ssssssss',
parameter1,
parameter2,
parameter3,
parameter4,
parameter5,
parameter6,
parameter7,
parameter8
);
|
|
|
|
|
Sorry sir but I keep getting half-baked answers that confuse me more.
I tried what you just gave.
Here it is again. I am very sorry for keep dumping code.
if( $sth = mysqli_prepare($conn,$sql) ) {
for($i=0; $i<count($last_id); $i++)
{
$sth->execute(array(
mysqli_stmt_bind_param($sth,'sssssss',
$last_id,
$_POST['sourcename'][$i],
$_POST['sourceaddress'][$i],
$_POST['income'][$i]),
$_POST['spousename'][$i],
$_POST['spouseAddress'][$i],
$_POST['spouseIncome'][$i]));
}
This now gives me the same error I got before when I tried it like that:
Fatal error: Only variables can be passed by reference in C:\xampp\htdocs\closures\forms\final.php on line 40
I am just trying to show what I have tried.
Again, integrating binding the parameters with the array is an issue that I am struggling with.
This is just the las phase of this annoying project.
|
|
|
|
|
$sth->execute(array(
What is the array expression supposed to mean here?
|
|
|
|
|
I may be using it incorrectly but without the array, I am getting an error that says I am trying to insert string when I should be inserting array of records.
|
|
|
|
|
I do not think it helps that you are trying to use compound statements, which make it more difficult to find the error. Try something like:
if( $sth = mysqli_prepare($conn,$sql) ) {
for($i=0; $i<count($last_id); $i++)
{
mysqli_stmt_bind_param($sth,'sssssss',
$last_id,
$_POST['sourcename'][$i],
$_POST['sourceaddress'][$i],
$_POST['income'][$i]),
$_POST['spousename'][$i],
$_POST['spouseAddress'][$i],
$_POST['spouseIncome'][$i]));
$sth->execute();
}
}
|
|
|
|
|
still getting the same error - Only variables can be passed by reference.
|
|
|
|
|
Then you need to look more closely at what these parameters are.
|
|
|
|
|
I'm no PHP expert, but the examples in the documentation[^] seem to suggest something like this should work:
if( $sth = mysqli_prepare($conn,$sql) ) {
mysqli_stmt_bind_param($sth, 'sssssss',
$last_id,
$sourcename,
$sourceaddress,
$income,
$spousename,
$spouseAddress,
$spouseIncome);
for ($i=0; $i<count($_POST['sourcename']); $i++)
{
$sourcename = $_POST['sourcename'][$i];
$sourceaddress = $_POST['sourceaddress'][$i];
$income = $_POST['income'][$i];
$spousename = $_POST['spousename'][$i];
$spouseAddress = $_POST['spouseAddress'][$i];
$spouseIncome = $_POST['spouseIncome'][$i]);
mysqli_stmt_execute($sth);
}
mysqli_stmt_close($sth);
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hi Richard,
For one thing, this is the furthest I have gone with this query.
FINALLY, it was able to save something to the database.
Incredible.
There are just two issues,
1, It is inserting only one row
2,It is just inserting only one character.
For instance, if first name is Richard, it inserts R.
If Karin, it inserts K.
But atleast, something is getting inserted.
This is awesome.
Thank you very sir.
Always to the rescue!
|
|
|
|
|