Hoi hoi,
Helaas ervaar ik problemen met wat Ajax+PHP+MySQL onderdelen...
Met Ajax ben ik niet geheel bekend, ik hoop dat iemand mij in de goede richting kan sturen!
In PHP/HTML staat een <FORM> met een <SELECT>. Deze <OPTIONS> van de <SELECT> worden opgehaald uit MySQL mbv PHP. So far so good... De <FORM> heeft een Ajax action: ajaxCampaign().
De ajaxCampaignDiv staat vervolgens onder het formulier en wordt netjes gevuld. Het opstarten van de "campaign_get.php" werkt naar behoren. De inhoud van dit PHP bestand is als volgt:
Zoals in de code zichtbaar, de output van campaign_get.php is wederom een formulier. Wanneer er waarden van dit formulier gewijzigd worden, zouden deze naar de DB moeten worden geupdate. Dus ik dacht... nu het truukje opnieuw... weer een Ajax functie opstarten en gaan met die banaan...
Helaas werkt dit niet
Naar mijn idee wordt het hele bestand "campaign_upd.php" vanuit de ajaxCampainUpdate() functie niet aangeroepen... Als ik los het PHP bestand opstart, werkt deze naar behoren.
Nu roep ik een Ajax Div aan in een Ajax Div, ik weet niet of dit mag/kan...
Iemand een idee wat ik hieraan kan doen?
Alvast enorm bedankt voor je reactie!!!
Mvg, Jeroen
Helaas ervaar ik problemen met wat Ajax+PHP+MySQL onderdelen...
Met Ajax ben ik niet geheel bekend, ik hoop dat iemand mij in de goede richting kan sturen!
In PHP/HTML staat een <FORM> met een <SELECT>. Deze <OPTIONS> van de <SELECT> worden opgehaald uit MySQL mbv PHP. So far so good... De <FORM> heeft een Ajax action: ajaxCampaign().
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| function ajaxCampaigns() { var ajaxRequest; try { // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState == 4) { var ajaxCampains = document.getElementById('ajaxCampaignDiv'); ajaxCampains.innerHTML = ajaxRequest.responseText; } } var campaign_id = document.getElementById('campaignSelect').value; var show = "?campaign_id=" + campaign_id; ajaxRequest.open("GET", "campaign_get.php" + show, true); ajaxRequest.send(null); } |
De ajaxCampaignDiv staat vervolgens onder het formulier en wordt netjes gevuld. Het opstarten van de "campaign_get.php" werkt naar behoren. De inhoud van dit PHP bestand is als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| <?php include_once("config.php"); $con = mysql_connect($dbhost, $dbuser, $dbpass); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db($dbname, $con); $campaign_id = $_GET['campaign_id']; $strQuery = "SELECT campaigns.start, campaigns.end, campaigns.dc, campaigns.ric, campaigns.target FROM campaigns where campaigns.id = \"$campaign_id\""; $srcResult = mysql_query($strQuery); while($arrayRow = mysql_fetch_assoc($srcResult)) { $campaign_start = $arrayRow["start"]; $campaign_end = $arrayRow["end"]; $campaign_dc = $arrayRow["dc"]; $campaign_ric = $arrayRow["ric"]; $campaign_target = $arrayRow["target"]; $displayStr = "\r\n"; $displayStr .= "\t<div class=\"selHolder\">\r\n"; $displayStr .= "\t<form name=\"CampaignUpdate\">\r\n"; $displayStr .= "\t\t<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" width=\"225px\">\r\n"; $displayStr .= "\t\t\t<tr><td>Start (yyyy-mm-dd 00:00:00):</td></tr><tr><td><input type=\"text\" name=\"campain_start\" size=\"22\" value=\"$campaign_start\"><br></td></tr>\r\n"; $displayStr .= "\t\t\t<tr><td>End (yyyy-mm-dd 00:00:00):</td></tr><tr><td><input type=\"text\" name=\"campain_end\" size=\"22\" value=\"$campaign_end\"><br></td></tr>\r\n"; $displayStr .= "\t\t\t<tr><td>Daily Cost (10.2):</td></tr><tr><td><input type=\"text\" name=\"campain_dc\" size=\"22\" value=\"$campaign_dc\"><br></td></tr>\r\n"; $displayStr .= "\t\t\t<tr><td>Referral Instance Cost (10.2):</td></tr><tr><td><input type=\"text\" name=\"campain_ric\" size=\"22\" value=\"$campaign_ric\"><br></td></tr>\r\n"; $displayStr .= "\t\t\t<tr><td>Target (10):</td></tr><tr><td><input type=\"text\" name=\"campain_target\" size=\"22\" value=\"$campaign_target\"><br></td></tr>\r\n"; $displayStr .= "\t\t\t<tr><td><input type=\"button\" onclick=\"ajaxCampaignUpdate('$campaign_id')\" value=\"Update campaign\"></td></tr>\r\n"; $displayStr .= "\t\t</table>\r\n"; $displayStr .= "\t</form>\r\n"; $displayStr .= "\t</div><\r\n"; } echo $displayStr; mysql_close($con); ?> |
Zoals in de code zichtbaar, de output van campaign_get.php is wederom een formulier. Wanneer er waarden van dit formulier gewijzigd worden, zouden deze naar de DB moeten worden geupdate. Dus ik dacht... nu het truukje opnieuw... weer een Ajax functie opstarten en gaan met die banaan...
Helaas werkt dit niet

Nu roep ik een Ajax Div aan in een Ajax Div, ik weet niet of dit mag/kan...
Iemand een idee wat ik hieraan kan doen?
Alvast enorm bedankt voor je reactie!!!
Mvg, Jeroen